Một thuật toán rất đơn giản nhưng không dùng đến chương trình con
Uses crt; Var N,i,d : Longint; Begin If N<2 Then Writeln(N,’ khong phai la so nguyen to’) Else Begin {Đếm số ước số} d:=0; For i:=2 To N div 2 Do If N MOD i=0 Then inc(d); {Kiểm tra} If d=0 Then Writeln(N,’ la so nguyen to’) Else Writeln(N,’ khong phai la so nguyen to’); End; Readln; End.Em nghĩ đây là cách đơn giản nhất
Cách của mình còn nhanh hơn cách bạn vì mình chỉ kiểm tra từ 2-> căn cố nhập vào. Chương trình của bạn nêu nhập số có khoảng 6 số thì chắc chắn sẽ lâu mới ra kết quả...
Thật ra chương trình mình dùng chương trình con cho màu mè thôi . vd như mình yêu cầu nhập lại nêu bạn nhập số <= 0 ...
bạn có thể show cho mình code tham khảo dc koHihi em mới viết chương trình này có thể kiểm tra được số lớn đến vài ngàn chữ số, mọi người tải về dùng thử rồi cho ý kiến được không ạ
http://www.mediafire...wt309ze39niwenq
Bài viết đã được chỉnh sửa nội dung bởi hoanglong9707: 19-08-2012 - 20:26