Đội ôn thi tin học trẻ không chuyên năm 2012

Status
Không mở trả lời sau này.
1

11thanhkhoeo

bài này làm như sau

lấy phần tử đầu tiên của dãy làm mốc xem tông các phần tử tiếp theo có = nó hay không

rồi lại lấy tổng 2 phần tử đầu....

ok
 
C

cuong276

Anh ơi! thuật toán hình như còn thiếu. Nếu như có nhiều phần bằng nhau thì phải có phần so sánh cái nhỏ nhất để in ra nữa chứ anh.
OK!
 
Q

quanghero100

A! Hiểu rồi. Bài này đúng là có dạng chặt khúc gỗ thành các phần. Tức là chia dãy số đó thành các phần có tổng bằng nhau. Nhưng cách làm của anh Quang chỉ tìm ra một nhóm số thôi phải không? Yêu cầu của đề là phải tách dãy sao cho các số hạng trong dãy không thay đổi.
P/s: Cô em bảo thế.

Đúng là bài của anh chỉ đưa ra một cách và đó là cách tìm thấy cuối cùng :D phía trước nó còn một số cách nữa nhưng anh chỉ chọn cách phân tích cuối cùng tìm thấy để xuất ra thôi nếu muốn xuất hết các cách ra cũng đc thôi :) cái đó thuộc về kĩ năng :p :p
 
Q

quanghero100

bài này làm như sau

lấy phần tử đầu tiên của dãy làm mốc xem tông các phần tử tiếp theo có = nó hay không

rồi lại lấy tổng 2 phần tử đầu....

ok

Thuật toán của anh Thành đưa ra là hoàn toàn giống hệt của em :) :) sau khi lấy phần tử đầu tiên làm mốc ta tiếp tục chọn phần tử thứ 2 làm mốc, tiếp đến là thứ 3, thứ 4,...làm mốc :D:D:D:D
 
M

m4u_hoahoctro

Chào mọi người, mình có bài này mọi người giúp mình nhé, code đơn giản càng tốt
Cho số k<= 2 tỷ. Ghi ra số phản nguyên tố lớn nhất nhỏ hơn hoặc bằng k.
inp: file inp.inp gồm
dòng 1: số m<=100
m dòng tiếp là các số k1 k2 k3...km
out: file out.out gồm m dòng, dòng thứ i là số phản nguyên tố lớn nhất nhỏ hơn hoặc bằng ki
sẵn đây mọi người giúp mình code xét 1 số có phải là số phản nguyên tố k nhé
Thanks
 
C

cuong276

code này mình chạy thử 1 số text đúng rồi. Có chỗ nào sai thì nói nha. Thuật toán: tìm số có số ước lớn nhất không vượt quá k sau đó cho ra output là xong
Mã:
var m,i,j,max,e,csmax:longint;
    k:array[1..1000]of longint;
    d:array[1..1000]of longint;
    f,g:text;
begin
     assign(f,'inp.inp');
     reset(f);
     assign(g,'inp.out');
     rewrite(g);
     readln(f,m);
     for i:=1 to m do readln(f,k[i]);
     for i:=1 to m do
         begin
              max:=-1;
              for j:=1 to k[i] do
                  begin
                       d[j]:=0;
                       for e:=2 to j-1 do
                           if j mod e=0 then d[j]:=d[j]+1;
                       if d[j]>max then
                          begin
                               max:=d[j];
                               csmax:=j;
                          end;
                  end;
              writeln(g,csmax);
         end;
     close(f);
     close(g);
end.
 
Last edited by a moderator:
M

mikelhpdatke

Mình chưa test bài của cuong nhưng không ổn, k<=2 tỷ tương đương với =2*10^9. Dùng integer sao ăn đc
 
C

cuong276

OK! Bài đã được sửa. Một số text để mọi người kiểm tra nha:
input:
2
20
1000
output:
12
840
 
Q

quanghero100

OK! Bài đã được sửa. Một số text để mọi người kiểm tra nha:
input:
2
20
1000
output:
12
840

Chú ý số phản nguyên tố là số mà khi ta xóa từ bên phải sang lần lượt từng số thì ta được số mới mà số đó không phải là số nguyên tố ví dụ 468 là một số phản nguyên tố vì 468 không phải là nt, 46 không phả là nt, 4 không phải là nguyên tố
Do đó với input của em bên trên thì file out phải là
1
18
1000
 
Last edited by a moderator:
M

mikelhpdatke

Chú ý số phản nguyên tố là số mà khi ta xóa từ bên phải sang lần lượt từng số thì ta được số mới mà số đó không phải là số nguyên tố ví dụ 468 là một số phản nguyên tố vì 468 không phải là nt, 46 không phả là nt, 4 không phải là nguyên tố
Do đó với input của em bên trên thì file out phải là
1
18
1000
Uả e tưởng số phản nguyên tố là số có nhiều ước số nhất trong khoảng nào đó mà
 
1

11thanhkhoeo

bài Quang chúng ta sẽ

kiêm tra rồi mod 10 rồi lại kiểm tra đến khi n =0

@mikel chỉ là tên gọi thôi lăn tăn gì
 
Last edited by a moderator:
C

cuong276

Chú ý số phản nguyên tố là số mà khi ta xóa từ bên phải sang lần lượt từng số thì ta được số mới mà số đó không phải là số nguyên tố ví dụ 468 là một số phản nguyên tố vì 468 không phải là nt, 46 không phả là nt, 4 không phải là nguyên tố
Do đó với input của em bên trên thì file out phải là
1
18
1000

số nguyên dương a gọi là số phản nguyên tố nếu với mọi số nguyên dương b<a thì số các ước số của b nhỏ hơn số các ước số của a. Như vậy mới gọi là số phản nguyên tốt mà anh.
 
Q

quanghero100

số nguyên dương a gọi là số phản nguyên tố nếu với mọi số nguyên dương b<a thì số các ước số của b nhỏ hơn số các ước số của a. Như vậy mới gọi là số phản nguyên tốt mà anh.

Anh cũng lên mạng coi rùi bằng chứng là đây:
một số được gọi là số phản nguyên tố nếu xóa đi từ nó bất kì 1 số chữ số từ phải qua trái thì được 1 số không phải là số nguyên tố.

http://www.diendantinhoc.net/vcs/forum/topic/89978/ai-giup-minh-bai-so-phan-nguyen-to-vs.html?p=1#1023659180
 
C

cuong276

Đúng đó. Tài liệu e đọc thì số phản nguyên tố đều được định nghĩa như vậy. À! Nếu như theo lời a quang nói thì mọi người cùng làm theo hướng nghĩ của a quang xem
@mike: Mình là cương, không phải là cường
 
Status
Không mở trả lời sau này.
Top Bottom