Description
已知f(x)=5*x^13+13*x^5+k*a*x,现给出一个数k,是否存在一个数a,对任意x都能使得f(x)能被65整除,如果存在输出a,否则输出no
Input
多组输入,每组用例占一行为一整数k,以文件尾结束输入
Output
对于每组用例,如果存在满足条件的a则输出a,否则输出no
Sample Input
11
100
9999
Sample Output
22
no
43
Solution
用数学归纳法证明:如果f(x)能够被65整除,那么f(x+1)也能够被65整除
因为5和13都是素数,所以C(5,i)和C(13,i)一定能分别被5和13整除,所以f(x+1)-f(x)的前半部分一定可以被13整除,只要后半部分18+ka能被65整除即可,我们只需枚举a的值看(18+ka)%65是否为0,如果当a的值已经超过65还不能整除说明无解,否则有解
Code
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int k,i;
while(scanf("%d",&k)!=EOF)
{
for(i=1;i<66;i++)
if((18+i*k)%65==0)
break;
if(i==66)
printf("no\n");
else
printf("%d\n",i);
}
}