| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:大牛帮看下 为什么WR了In Reply To:大牛帮看下 为什么WR了 Posted by:luxinpeng at 2008-10-18 20:51:58 > #include <stdio.h>
> #include <string.h>
> #include <math.h>
> int n;
> const int nn=3000;
> int prime[nn];
> int is[nn];
> void make_prime(int nn)
> {
> int i,j,b;
> memset(is,1,sizeof(is));
> is[0]=is[1]=0;
> prime[0]=0;
> for(i=2;i<=nn;i++)
> {
> if(is[i]==0) continue;
> prime[++prime[0]]=i;
> b=nn/i;
> for(j=i;j<=b;j++)
> is[i*j]=0;
>
> }
> }
> void slove()
> {
> int i,j,t,k,t1;;
> t=1;
> for(i=1;i<=prime[0]&&prime[i]*prime[i]<=n;i++)
> {
>
> while(n%prime[i]==0)
> {
> k=0;
> while(n%prime[i]==0)
> {
> if(n==1) break;
> k++;
> n=n/prime[i];
> }
> t1=(k+1)*(k+2)/2;
> t*=t1*t1;
> }
> }
> if(n>1) t*=9;
> printf("%d\n",t);
> }
> int main()
> {
> int t;
> make_prime(nn);
> //printf("%d\n",prime[0]);
> scanf("%d",&t);
> while(t--){
> scanf("%d",&n);
> if(n==1) printf("1\n");
> else slove();
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator