(数学归纳法证明)
Ignatius's puzzle
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5511 Accepted Submission(s): 3773
Problem Description
Ignatius is poor at math,he falls across a puzzle problem,so he has no choice but to appeal to Eddy. this problem describes that:f(x)=5*x^13+13*x^5+k*a*x,input a nonegative integer k(k<10000),to find the minimal nonegative integer a,make the arbitrary integer x ,65|f(x)if
no exists that a,then print "no".
Input
The input contains several test cases. Each test case consists of a nonegative integer k, More details in the Sample Input.
Output
The output contains a string "no",if you can't find a,or you should output a line contains the a.More details in the Sample Output.
Sample Input
Sample Output
题目大意:f(x)=5*x^13+13*x^5+k*a*x 现输入一个k,看是否存在a 使得对任意的x都满足65|f(x).
解题思路:既然对任意的x满足,则当x=1时也满足。f(1)=(18+K*a) -------> (18+k*a)%65==0 又因为当a>65时,可以看成是 a=65+b 。所以只需要在1~65之间寻找a 就行
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int k,a,i,j;
while(~scanf("%d",&k))
{
i=0;
for(j=1;j<=65;j++)
{
if((18+k*j)%65==0)
{
i=1;
break;
}
}
if(i)
printf("%d\n",j);
else
printf("no\n");
}
return 0;
}