program timsocotonguocle; uses crt; var a:array[1..10] of integer; n,i,s,j : integer; begin clrscr; writeln('hay cho biet so phan tu trong vi <= 10'); readln(n); for i:= 1 to n do begin write('phan tu thu n=',i,' co gia tri la '); readln(a[i]); end; for i:=1 to n do begin for j:=1 to a[i] div 2 do if a[i] mod j =0 then s:=s+j ; if (s mod 2) =1 then writeln(a[i],'la so thoa dieu kien'); s:=0; end; readln; end.
Wed Jan 13, 2010 10:43 pm
Tổng điều hành
Regulus™
Giới tính :
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer
Thú cưng .:
Tiêu đề: Re: Bài giải thi pascal
hix.... Câu này bị sai rồi nè....for j:=1 to a[i] div 2 do chỉ tính tổng các ước từ 1--> A/2 thì sao gọi đó là tổng tất cả các ước số của a
Wed Jan 13, 2010 10:52 pm
Thành Viên Xây Dựng
kim_o
Giới tính :
Đến từ : An Giang
Join : 12/11/2009
Bài gửi : 148
Tiêu đề: Re: Bài giải thi pascal
hjhj, mấy o chạy thử đi rùi biết. thực tế là ước của 1 số chỉ chạy từ 1 đến n div 2 thui. vd: 8 thi có cac uoc là 1,2,4 ==> 4= 8 div 2; 16 có các ước 1,2,4,8 ==> 8 = 16 div 2; 18 có ước là 1,2,3,6,9 ==> 9 = 18 div 2,.... nói chung nó đúng với mọi số.... bài này t phải nghĩ thêm 1 ngày tìm tối ưu đó. nhưng tui nghĩ sẽ có bài ngắn hơn nữa, nên post lên cho mọi người góp ý
Thu Jan 14, 2010 12:35 am
Tổng điều hành
Regulus™
Giới tính :
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer
Thú cưng .:
Tiêu đề: Re: Bài giải thi pascal
hoho.. như vậy là ôg thiếu 1 ước là chính nó nữa chi ) tui nhớ hình như vi dụ số 25 ước là 1 + 5 + 10 + 25 = 41 ... suy ra 25 cũng là số đạt yêu cầu bài này nếu khoa học thì xài function hay procedure ji cũng dc... CT chính nhìn đẹp )
Thu Jan 14, 2010 8:54 pm
Thành Viên Xây Dựng
kim_o
Giới tính :
Đến từ : An Giang
Join : 12/11/2009
Bài gửi : 148
Tiêu đề: Re: Bài giải thi pascal
oh, thì dẹp thui chứ k gọn gàng và dễ huểu như t đâu... tất nhiên là t biết còn 1 ước là chính nó nhưng trong vd: trong bài thi hình như bỏ đi ước là chính nó, nên t mới làm vậy. chứ k thì cho nó chạy tới a[i] luôn...
Fri Jan 15, 2010 11:52 pm
Thành Viên Danh Dự
hecator
Giới tính :
Join : 07/11/2009
Bài gửi : 513
Thú cưng .:
Tiêu đề: Re: Bài giải thi pascal
cái này mình không dám bình luận chỉ thắc mắc tại sao nó chỉ có ước tới n/2 hay là n( như vậy nếu tổng ước là chẳn nhưng cộng thêm ước chính nó lại là số đó lẻ vd: U(63) =1+ 3+ 7 +9 +21 =41 lẻ nhưng nếu U(63)=1+3+7+9+21+63=104 chẳn Vậy đâu là đúng ? @regulus 10 đâu là ước của 25 đâu
Sat Jan 16, 2010 9:49 am
Tổng điều hành
Regulus™
Giới tính :
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer
Thú cưng .:
Tiêu đề: Re: Bài giải thi pascal
U(63)=1+3+7+9+21+63=104 chẳn Cái này là đúng đó big... :D hiohihi.... nhầm về ước U25=1 + 5 + 25 = 31 lẻ .. hihi Theo thuật toán tối ưu hóa tìm Ước thì các ước bé hơn nó chỉ chạy tới n/2 thôi... hihihi.....
Sun Jan 17, 2010 12:39 pm
Thành Viên Chuẩn
—» Ñärµ «—
Join : 11/11/2009
Bài gửi : 47
Tiêu đề: Re: Bài giải thi pascal
s=0 phải đặt đầu vòng lặp.(vòng lặp tính tổng ước)