作业帮 > 综合 > 作业

用Pascal语言求出1——1000以内的孪生素数!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 19:16:49
用Pascal语言求出1——1000以内的孪生素数!
思路:
1.定义一个“函数prime”,判断该数是否是素数;
2.主程序:
   1)输出(2,3)
   2)从3~999的所有奇数循环;
   3)如果这个数是素数,则判断这个数+2是不是素数,如果是,则输出(这个数,这个数+2).

程序LZ可以自己试试看.

这个定义的函数prime的思路是:
1.要判断一个数 n 是否是素数,可以从2~trunc(sqrt(n))循环,再看循环变量是否能整除 n ,如果都不能整除,则 n 是素数;
2.
function prime(n:longint):boolean;
var i:longint;
begin
 prime:=true;
 for i:=2 to trunc(sqrt(n)) do 
  if n mod i=0 then 
  begin 
    prime:=false;
    exit;
  end;
end;

这段代码不优化,不过由于是1000以内,还可以.

经过上机调试,测试通过,源代码见附件.


再问: ����������Ӧ����ô���أ�
再答: ��ν���������������������������������5��7����11��13���ر�ģ���Ϊ2��Ψһ��ż�������2��3Ҳ��һ��������������������������������ڣ�������ѿ�������ˣ��ᷢ����ôһ�Σ�if prime(i) and prime(i+2)
then writeln('(',i,',',i+2,')');�������ǵ�ѭ������ i �Ѿ�����Ϊ������if odd(i)������ i �� i+2 ��ͨ�����ж�����prime�ĺ���ͻᶼ����true����˿��Կ϶�i��i+2��һ����������      �������
Ϊ�˷�ֹLZûװpascal�������������ٷ�һ����ִ���ļ����㿪����н��1000���ڵ��������������أ�