心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

高精度乘单精度+素数判断。

我的代码如下:

#include<stdio.h>
#include
<math.h>
long n;
long num[100000]={0},len;
void mul(long x)
{
    
long i,l;
    l
=len;
    
if(x>=10) l++;
    
if(x>=100) l++;
    
if(x>=1000) l++;
    
for(i=0;i<len;i++)
      num[i]
*=x;
    
for(i=0;i<l;i++)
      
if(num[i]>=10)
      
{
         num[i
+1]+=num[i]/10;
         num[i]
%=10;
      }

    
if(num[l]!=0) l++;
    len
=l;
}

int prime(long x)
{
    
long i;
    
if(x==1return 0;
    
if(x==2return 1;
    
for(i=2;i<=sqrt(x);i++)
      
if(x%i==0)
        
return 0;
    
return 1;
}

int main()
{
    
long i,sum;
    scanf(
"%ld",&n);
    num[
0]=1;len=1;
    
for(i=1;i<=n;i++)
      mul(i);
    
//for(i=len-1;i>=0;i--) printf("%ld",num[i]);
    sum=0;
    
for(i=0;i<len;i++)
      sum
+=num[i];
    printf(
"%ld",sum);
    
if(prime(sum)==1)
      printf(
"T");
    
else printf("F");
return 0;
}
posted on 2010-01-06 20:12 lee1r 阅读(115) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理