关于PASCAL的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:35:49
如何算100到200之间的素数

程序如下:
方法一[基本方法]
program sushu(input,output);
var
i,j:integer;
f:boolean;
begin
for i:=100 to 200 do
begin
f:=true;
for j:=2 to i-1 do
if i mod j=0 then f:=false;
if f then writeln(i);
{打印出素数}
end;
end.
方法二[优化方法]
program sushu(input,output);
var
i,j:integer;
f:boolean;
begin
for i:=100 to 200 do
if i mod 2<>0 then begin
{优化,在100到200之间的偶数不可能是素数}
f:=true;
for j:=3 to trunc(sqrt(i)) do
{优化,前面已经判定了:偶数就不做,所以不必试2}
if i mod j=0 then f:=false;
if f then writeln(i);
{打印出素数}
end;
end.

这个。。
建议去网络上看看筛法的东西,比较有用。
其实只要求100-200,用for一个一个判断就可以了

应该学学集合。
这道题目如果为了初学者练习的话,最好用集合来写筛法。

记得以前Tongji Online Judge还开着的时候有这么一道题,我曾经搞了一个解题报告(不要BS哈)

一.问题描述
Problem
素数是的只能被1和它本身整除的自然数。判断一个数是素数的方