Ignatius's puzzle
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11555 Accepted Submission(s): 8113
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
11
100
9999
Sample Output
22
no
43
给出一个函数: f(x)=5*x^13+13*x^5+k*a*x
给定一个非负的k值 ,求最小的非负的a值,使得对任意的整数x都能使f(x)被65整除。
每输入一个k 值 ,对应输出一个 a值 ,若a值不存在的话,则输出 no
方法一:数学归纳法:参考地址
假设任意X 都使 f(X)能被65 整除。
那么,X = 1 时成立 即 18 + k*a 能被65整除。
X = X + 1 亦成立 ,带入由二项式定理展开得 f(X) = 5*(c(13,0)x^13 + c(13,1)x^12....... c(13,13)x^0 ) + 13*(c(5,0)x^5.....) + kax + ka
因为f(x)=5*x^13+13*x^5+k*a*x , 所以5*x^13+13*x^5+k*a*x 能被 65 整除 。在上式中 c(13,0)、c(13,1).....显然含有因子13,与括号前5相乘等于65,因此能被65整除, 同理可得c(5,0).....
最后剩下 c(13,13)x^0 + c(5,5)x^0 + ka = 18 + k*a不知能否被整除。
此式与 f(1) 相同, 因此 只要 枚举a,使18 + k*a 能被 65 整除, 则 f(X) 能被整除
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<ctime>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
bool p = false;
int ans;
for(int i = 1; i <= 65; i ++)
{
if((18+n*i)%65==0)
{
ans = i;
p = true;
break;
}
}
if(p)cout << ans << endl;
else cout << "no" << endl;
}
return 0;
}
方法二:费马小定理
f(x)=5*x^13+13*x^5+k*a*x转化成f(x)=(5*x^12+13*x^4+k*a)*x
1.当x=65的倍数时就行了;
2.当x=5的倍数时则需要(5*x^12+k*a)是13的倍数,由费马小定理可知,因为x是5的倍数所以(x^(13-1)%13==1),所以(5*x^12%13==5),所以只需要做到k*a%13==8即可!
3.同理可得当x=13的倍数时,只需要做到(13*x^4+k*a)是5的倍数由费马小定理可知,因为x是5的倍数所以(x^(5-1)%5==1),所以(13*x^(5-1)%5==3),所以只需要做到k*a%5==2即可
4.当x不是上面的特殊数时,则需要f(x)=(5*x^12+13*x^4+k*a)*x被65整除,也就是需要同时满足上面那两个条件!