Function GetZhiShu(Const M: Integer):String;
begin
  Result:='1'+',';
  For i:= 1 to M do
    if M mod i <> 0 then
    Result:=Result+ inttostr(i)+',';
  Result:=Result+inttostr(M);
end;

解决方案 »

  1.   

    netlib(河外孤星),你这个我也知道,就是要怎样才能循环的次数最少。
    我的这个都是天文数学,不可能单个循环的。
      

  2.   

    用longint都不行,longint可以有多大?
      

  3.   

    longint是64位的,也就是2的64次方,多大?自已算一算,大约是
    4.x*(10的18次方)吧
      

  4.   

    循环:for i:=2 to M/2 do 如何??
      

  5.   

    有新料了,是可以减少一半,那3呢?又要怎样处理?
    有没有大过longint的整数?
      

  6.   

    暂时我这里只有C 代码,可以吗?for(j=1;j<=n;j++)
     {printf("input number(2~32767):");
      scanf("%d",&m);
      k=sqrt(m);
      for(i=2;i<=k;i++)
      if(m%i==0) break;
      if(i>=k+1) total=total+1;
     }total是统计质数的个数的
      

  7.   

    dafeifei(大飞飞),虽然你没看清就乱答,我还是会多给点分你!
    快呀,3怎么处理,能处理吗?改了时间,19:30结贴,请大家快点回答!
      

  8.   

    Int64是 2的64次方
    最大的了,再大就要用实数处理了
    Extended3.6 x 10^?951 .. 1.1 x 10^4932
      

  9.   

    不对呀netlib(河外孤星) ,2的已经判断了,15最多只要8次了。
      

  10.   

    用miral大数运算库,即使是10的1000次方以上的数也能解决,里边有现成的函数
      

  11.   

    推荐一个工具,RsaTool,可以直接判断,或者是我的bigint calculator pro中的rsatool工具