挛生素数

来源:百度知道 编辑:UC知道 时间:2024/06/21 16:30:49
【试题描述】

我们定义,如果a和a+2都是素数(如5和7),那么我们就称a和a+2是一对挛生素数。请写一个程序找出2-N之间的所有挛生素数。

【输入描述】

一个整数N( 2 < N < 1000 )。

【输出描述】

若干行,每行两个整数,即一对挛生素数。

【输入样例】

10

【输出样例】

3 5
5 7

pascal解答

先开一个1000以内的素数表
可以用筛法,也可以直接开常数表,用P[I]表示I是否为素数
然后从2到N循环
找出所有 {X|P[X] And P[X+2]}
筛法网上绝对有,或者你懒得搜留言给我也可以

program ex;
var
i,j,n:integer;
a:array[1..10000]of boolean;
begin
readln(n);
for i:=1 to 10000 do
a[i]:=ture;
a[1]:=false;
for i:=1 to 10000 do
for j:=1 to trunc(sqrt(i)+1) do
if (i mod j) =0
then a[i]:=false;
for i:=2 to (n-2) do
if a[i] and a[i+2];
then writeln(i,' ',i+2);
end.
我直接在这写的,有错的话你调调吧。