http://acm.hdu.edu.cn/showproblem.php?pid=1098
假设x=m时,65|f(m),即65|5*m^13+13*m^5+k*a*m
计算f(m+1)=(5*m^13+13*m^5+k*a*m)+65*(m^12+6*m^11+22*m^10+55*m^9+99*m^8+132*m^7+132*m^6+99*m^5+56*m^4+24*m^3+8*m^2+2*m)+(18+k*a)
式子的前两部分显然能被65整除,此时如果65|(18+k*a),那么65|f(m+1)。
同时观察到f(1)=18+k*a,所以如果65|f(1),则65|f(m+1),此时对于所有x>1,65|f(x)均成立
这样问题就转化到是否存在a使得65|(18+k*a),我们从1-64进行枚举,先找到满足条件的a必定是最小的,符合题目要求,均不成立则输出"no"
#include <iostream>
using namespace std ;
int main()
{
int k ;
while(~scanf("%d",&k))
{
int a= ;
for(int i= ;i< ;i++)
{
if((+k*i)%==)
{
a=i ;
break ;
}
}
if(!a)
puts("no") ;
else
printf("%d\n",a) ;
}
return ;
}