有个 问题向大家请教
要求是:(a^p)%p==a 详见http://acm.pku.我的代码是这样的:
#include <iostream>
using namespace std;
long int f(int p,int a)
{
long int s=1;
for(int i=0;i<p;i++) s*=a;
return s;
}
int main()
{
long int p,a;
cin>>p>>a;
while((p||a)!=0)
{
if(f(p,a)%p==a) cout<<"yes"<<endl;
else cout<<"no"<<endl;
cin>>p>>a;
}
return 0;
}
可是老算不到正确的结果,是不是数据定义有错误啊,定义的太小了?