pascal 圆环上的素数

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:03:11
问题描述:
将0,1,2,3...9 共十个数排成一圈。
给出一个取数长度L(1<=L<=5),然后从1开始按顺时针方向连续取L个数字,拼成一个长为L位的数。此时共有9个长为L位的数,然后输出这9个数中的素数。

例如:L=2,此时9个长为L位的数为:
12,23,34,45,56,67,78,89,90
其中素数有23,67,89

程序要求:
输入:L
输出:全部满足条件的素数。如果没有则输出NO

var l,i,j:longint;
a:array [1..20] of longint;
flag:boolean;
function get(x,l:longint):boolean;
var num,i:longint;
begin
num:=0;
for i:=x to x+l-1 do num:=num*10+a[i];
if num<2 then exit(false);
for i:=2 to trunc(sqrt(num)) do if num mod i=0 then exit(false);
exit(true);
end;
begin
readln(l);
for i:=1 to 10 do begin
a[i]:=i mod 10;
a[i+10]:=a[i];
end;
for i:=1 to 9 do if get(i,l) then begin
flag:=true;
for j:=i to i+l-1 do write(a[j]);
writeln;
end;
if not flag then writeln('NO');
end.
现敲的 不保证正确性

var
a:array[0..10000] of longint;
b:array[0..10000] of longint;
n,r,s:longint;
function ss(d:longint):longint;
var
k,bj:longint;
begin
bj:=1;
for k:=2 to trunc(sqrt(d)) do
begin
if d mod k=0 then
begin
bj:=0;
end;
end;
ss:=bj;
end;
procedure print(y:longint);