这道题算是认真读了,算是以前没有仔细去研究一下不懂的符号,今天意淫出来的。呵呵
题意就是满足公式f(x)=5·x^(13)+13·x^(5)+k·a·x的情况下,求一个最小的a,使得对于任何一个x都满足65|f(x)
1.既然对整数x是任意满足的(除了0),那么取x=1就可以很快化简得公式(18+a·k)%65==0
2.有了上面的公式之外,可以进行暴力。
3.如果直接暴力超时。可以注意到第66次和第1次是相同的,因为将公式化简后,出现了周期消去。此处不解释了
1 #include <stdio.h>int main() 2 { 3 int k,ok,n; 4 while(scanf("%d",&k)!=EOF) 5 { 6 ok=0; 7 for(int i=1;i<=65;i++) 8 { 9 if((18+i*k)%65==0) 10 { 11 printf("%d ",i); 12 ok=1; 13 break; 14 } 15 } 16 if(!ok) puts("no"); 17 } 18 return 0; 19 }