| ||||||||||
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 |
费马小定理应该是正确的吧?有哪位大虾帮忙看看我的程序是哪里错了!!听说有这么个玩意,就想试试看,结果总不过,郁闷!! #include<stdio.h> int mod(int a,int p,int m) { __int64 x; if(p==1) return a%m; if(p==0) return 1; if(p%2) {x=mod(a,p/2,m);x=(((x*x)%m)*a)%m;return x;} else {x=mod(a,p/2,m);x=(x*x)%m;return x;} } int n,i,j,k,p,pim[200],m,num[1000]; int main(int argc, char* argv[]) { m=0; for(i=2;i<=1000;i++) { if(num[i]==0) { for(j=i*2;j<=1000;j+=i) { num[j]=1; } } } for(i=2;i<1000;i++) { if(num[i]==0) { m++; pim[m]=i; } } while(scanf("%d",&p)>0) { if(p==0) break; for(i=2;i<=m;i++) { j=p-pim[i]; if(mod(2,j-1,j)==1) {break;} } printf("%d = %d + %d\n",p,pim[i],j); } return 0; } 这是小弟的程序。。。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator