杭电 OJ 1098
来源:互联网 发布:网络分销协议 编辑:程序博客网 时间:2024/06/10 21:13
问题解析:
数学归纳法
f(1) = 18 + ka;
假设f(x) = 5*x^13+13*x^5+k*a*x 能被65整除
f(x+1) = 5*(x+1)^13+13*(x+1)^5+k*a*(x+1)
根据二项式定理展开 (a+b)^n = C(n,0)*a^n*b^0 + C(n,1)*a^(n-1)*b^1 + C(n,2)*a^(n-2)*b^2 + ... + C(n,n)*a^0*b^n
f(x+1) = 5 * (x^13 + C(13,1)*x^12 + C(13,2)*x^11 + ... + C(13,13)) + 13 * (x^5 + C(5,1)*x^4 + .. + C(5,5)) + k*x*a + ka;
补充:组合数性质 C(n, m) (m < n) 如果n为质数 则C(n, m)能被n整除。
证明:
C(n, m) = n! / (m! * (n-m)!) = (n-m+1) * (n-m+2) * ... * n / m!
m = 1: C(n, m) = n; C(n, m) % n = 0;
1 < m < n: 因为C(n, m)为整数,n为质数,m!为合数,n / m! 不是整数,进而(n-m+1) * (n-m+2) * ... * (n-1) / m!必为整数,所以C(n, m)能被n整除。
证毕。
化简 : f(x+1) = 5*x^13 + 5*13*g(x) + 5 + 13*x^5 + 13*5*h(x) + 13 + k*x*a + ka;
= f(x) + 65*g(x) + 65*h(x) + 18 + ka;
只要证明 18 + ka 能被65整除。
又因为(a + b) mod m = (a mod m + b mod n) mod m
所以只要证明 ka 能被 47 整除。
#include <iostream>using namespace std;int main(){ int k, a; while(cin >> k) { if(k % 65 == 0) { cout << "no" << endl; continue; } for(a=0; a<65; a++) { if(k*a % 65 == 47) { cout << a << endl; break; } } if(a == 65) { cout << "no" <<endl; } } return 0;}
- 杭电 OJ 1098
- 杭电OJ 1098:Ignatius's puzzle
- 杭电oj分类
- 杭电oj
- 杭电OJ 2054
- 杭电OJ 1028
- 杭电 oj 1001
- 杭电OJ Elevator
- 杭电oj 1009
- 杭电oj-1003
- 杭电oj-1004
- 杭电oj-1005
- 饭卡 杭电oj
- 杭电OJ分类
- 杭电OJ 1002
- 杭电OJ 1001
- 杭电OJ 1003
- 杭电OJ 1004
- El表达式
- jsp总结
- http webservice socket的区别
- 异常处理
- SpringAOP编程实例
- 杭电 OJ 1098
- python 38一些图像处理的方法(未完待续)
- this.interrupted()和this.isInterrupted()方法的区别
- 77. Combinations
- SignalR在ASP.NET MVC中的应用
- Thinkphp3.2.3分页锁定搜索条件
- JSTL表达式
- 关于对电离层物理的一点理解
- LA 4064 求n个点 可以组成多少个锐角或者直角三角形