hdu1098:Ignatius's puzzle
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1098
参考链接:http://blog.csdn.net/baidu_23955875/article/details/42581983
费马小定理?!
看了参考链接中对费马小定理的解释后茅塞顿开
详细解释参见代码
代码:
1 /** 2 *费马小定理 :假如p是质数,且Gcd(a,p)=1,那么 a^(p-1) ≡1(mod p)。 3 *即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1), 4 *那么a的(p-1)次方除以p的余数恒等于1。该定理是1636年皮埃尔·德·费马发现的。 5 */ 6 7 /** 8 *f(x)=5x^13+13x^5+kax 9 *设g(x)=f(x)/x/65 即g(x)=x^12/13+x^4/5+ka 10 *由费马小定理,g(x)实际上转化为g(x)=(13+5)/65+ka/65 11 *故枚举a即可 12 *而a>65之后实际上进入下一周期,故只需枚举到65 13 */ 14 15 int main() { 16 int k; 17 while (~scanf("%d", &k)) { 18 int i; 19 for (i = 1; i <= 65; i++) { 20 if ((18 + k*i) % 65 == 0) { 21 cout << i << endl; 22 break; 23 } 24 } 25 if (i > 65) { 26 cout << "no" << endl; 27 } 28 } 29 return 0; 30 }