pascal输出100 以内的全部素数,要求每行显示5 个。

2025-03-12 18:19:38
推荐回答(3个)
回答1:

var i,j,n,x:longint;
yes:boolean;
num:array[1..100]of longint;
begin
n:=1;
num[1]:=2;
for i:=3 to 100 do
begin
yes:=true;
for j:=2 to round(sqrt(i)) do
if i mod j=0 then begin yes:=false;break;end;
if yes then begin inc(n);num[n]:=i;end;
end;
for i:=1 to n do
begin
if ((i-1) mod 5=0)and(i<>1) then
writeln;
write(num[i],' ');
end;
end.
num:array[1..100]of longint 是一个数组 一般形式是
数组名:array[数组边界..数组边界]of 数据类型;
要是多维数组的话 就是在每组数组边界之间加个逗号就行了...
用于存储质数的 这个只是为了输出方便 每行输出五个 也可以通过其他的方法来实现 但是“963569780”这位仁兄的方法是错的 t:=t+1应该在 if t mod 5 = 0 then writeln; 的后面 否则第一行只能输出四个...

回答2:

num:array[1..100]of longint;这个命令是数组定义,前面应该还有var吧。表示定义数组num,它的下标是从1到100,而且这100个元素都是longint长整型的。跟每行输出5个没有关系。程序如下:
var
i,t:longint;
num:array[1..100] of integer;
function ss(x:integer):boolean;
var
r:integer;
begin
ss:=true;
for r:=2 to trunc(sqrt(x)) do
if x mod r = 0 then
begin
ss:=false;
exit;
end;
end;
{自定义函数ss,专门用来判断素数的}
begin
t:=0;
for i:=2 to 100 do
if ss(i) then
begin
t:=t+1;
if t mod 5 = 0 then writeln;
write(i,' ');
end;
writeln;
end.

回答3:

数组类型 。 在 内存中开连续 的 100 个 有符号长整型。
可以通过 NUM[I] (I 为下标) 直接 访问 、修改。
基础中的基础。。。。。
好好看看书。。。。。