输入正整数N(N<=40000),在一行中输出N以内的所有素数,每两个素数之间用一个空格隔开

行末不加空格,用pascal语言

第1个回答  2012-04-29
var
a,b,c,d,e:longint;
begin
readln(c);
if c>200 then
begin
write('2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 ');
write('101 103 107 109 113 127 131 139 149 151 157 163 167 173 179 181 191 193 197 199 ');
end;
for a:=2 to c do
if a mod 2<>0 then
if a mod 3<>0 then
if a mod 5<>0 then
if a mod 7<>0 then
if a mod 11<>0 then
if a mod 13<>0 then
if a mod 17<>0 then
if a mod 19<>0 then
if a mod 23<>0 then
if a mod 29<>0 then
if a mod 31<>0 then
if a mod 37<>0 then
if a mod 41<>0 then
if a mod 43<>0 then
if a mod 47<>0 then
if a mod 53<>0 then
if a mod 59<>0 then
if a mod 61<>0 then
if a mod 67<>0 then
if a mod 71<>0 then
if a mod 73<>0 then
if a mod 79<>0 then
if a mod 83<>0 then
if a mod 89<>0 then
if a mod 97<>0 then
if a mod 101<>0 then
if a mod 107<>0 then
if a mod 109<>0 then
if a mod 113<>0 then
if a mod 127<>0 then
if a mod 131<>0 then
if a mod 139<>0 then
if a mod 149<>0 then
if a mod 151<>0 then
if a mod 157<>0 then
if a mod 163<>0 then
if a mod 167<>0 then
if a mod 173<>0 then
if a mod 179<>0 then
if a mod 181<>0 then
if a mod 191<>0 then
if a mod 193<>0 then
if a mod 197<>0 then
if a mod 199<>0 then
write(a,' ');
writeln;
end.注意: c 要大于200
N 要小于40000
第2个回答  2012-04-30
var
a,b,c,n:longint;
begin
readln(n);
for i:=1 to n do
for b:=2 to i-1do
begin
if n mod i =0 then a:=a+1;
if a>=1 then write(i,' ');
end;
readln
end.追问

你的程序中第九行中输出为write(i,' '),这样输出后行末仍会有空格,你能改下程序吗?

追答

改为:write(i:5)

本回答被提问者和网友采纳