Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

费马小定理应该是正确的吧?有哪位大虾帮忙看看我的程序是哪里错了!!

Posted by jiali at 2005-08-12 06:41:05 on Problem 2262
听说有这么个玩意,就想试试看,结果总不过,郁闷!!
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator