主题:Who can do it ?
xh2693942
[专家分:0] 发布于 2005-05-02 09:04:00
编程计算并打印200以内的素数
[em18]
回复列表 (共6个回复)
沙发
水生 [专家分:550] 发布于 2005-05-02 13:00:00
var
n:integer;
function prime(n:integer):boolean;
var i:integer;
begin
prime:=true;
for i:=2 to round(sqrt(n)) do
if n mod i=0 then prime:=false;
end;
begin
for n:=2 to 200 do
if prime(n) then write(n:4);
writeln;
readln;
end.
板凳
sd5774188 [专家分:260] 发布于 2005-05-03 16:50:00
program yb(input,output);
var a,b:integer;
c:boolean;
begin
writeln('2');
for a:=3 to 200 do
begin
c:=true;
for b:=2 to trunc(0.5*a) do
if (a mod b=0) then
c:=false;
if c=true then
writeln(a);
end;
end.
3 楼
泡泡糖 [专家分:230] 发布于 2005-05-03 18:19:00
program lt;
var i,s,n,j,k:integer;
begin
for i:=2 to 200 do
begin
j:=0;
for k:=1 to i do if i mod k=0 then j:=j+1;
if j=2 then s:=s+i;
end;
writeln('s= ',s);
end.
4 楼
lyn532226 [专家分:230] 发布于 2005-05-03 19:05:00
[em9]用集合吧。
program prime;
const
n=200;
var
s:set of 1..n;
a,next,mul:integer;
begin
a:=0;
next:=2;
s:=[2..n];
repeat
while not (next in s) do
next:=next+1;
a:=a+1;
write(next:4);
if a mod 10=0 then
writeln;
nul:=next;
while nul<=n do
begin
s:=s-[mul];
mul:=nul+next;
end;
until s=[];
end.
5 楼
泡泡糖 [专家分:230] 发布于 2005-05-04 10:31:00
集合好像很麻烦也!强烈推荐3楼的!!!
好的话就顶!
6 楼
lyn532226 [专家分:230] 发布于 2005-05-04 18:28:00
有什么麻烦啊,我可没觉得,在这里虽长了啦,但在很多方面是很有用的,也是很简单的[em9]
我来回复