HDU 1098 Ignatius's puzzle

题目大意:就是给你一个公式:f(x)=5*x^13+13*x^5+k*a*x,已经给定k,是否存在a,其f(x)%65==0.

 现在假设存在,然后当f(1)=18+k*a;

 有要求f(x)%65==0,所以f(1)=65*n=18+k*a;若要方程成立,就要n为正数

代码如下:

#include<iostream>
using namespace std;
int main()
{
    int k,i;
    while(cin>>k)
    {
        k%=65;
        for(i=1;i<=65;i++)
        {
            if((18+k*i)%65==0)
            {
                cout<<i<<endl;;
                break;
            }
        }

        if(i==66)
            cout<<"no"<<endl;
    }
    return 0;
}


你可能感兴趣的:(杭电)