vijos P1200 ganggang的烦恼

vijos P1200 ganggang的烦恼

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

我的代码如下:

#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;
}

你可能感兴趣的:(vijos P1200 ganggang的烦恼)