其实这道题不是很难,但是我刚开始拿到这道题的时候不知道怎么做,
因为这个式子我就不知道是干什么的:
65|f(x)
百度解释(若a/b=x...0 称a能被b整除,b能整除a,即b|a,读作“b整除a”或“a能被b整除”。a叫做b的倍数,b叫做a的约数(或因数)。)
即:f(x)能够被65整除。
即题目大意是:
方程f(x)=5*x^13+13*x^5+k*a*x;输入任意一个数k,是否存在一个数a,对任意x都能使得f(x)能被65整除
解题思路:
当x=1时f(x)=18+ka,又因为f(x)能被65整出,故设n为整数,可得,f(x)=n*65;
即:18+ka=n*65; n为整数
则问题转化为,对于给定范围的a只需要验证,是否存在一个a使得(18+k*a)%65==0能被b整除”。
#include<stdio.h> int main() { int k,i; while(~scanf("%d",&k)) { for(i=0;i<66;i++) { if((18+k*i)%65==0) { printf("%d\n",i); break; } } if(i==66) printf("no\n"); } return 0; }