回 帖 发 新 帖 刷新版面

主题:Who can do it ?



编程计算并打印200以内的素数



[em18]

回复列表 (共6个回复)

沙发

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.

板凳

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 楼

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 楼

[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 楼

集合好像很麻烦也!强烈推荐3楼的!!!

好的话就顶!

6 楼

有什么麻烦啊,我可没觉得,在这里虽长了啦,但在很多方面是很有用的,也是很简单的[em9]

我来回复

您尚未登录,请登录后再回复。点此登录或注册