摘要: 简单组合数学View Code #include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define maxn 10005struct Factor{ int value, num;} factor[maxn];bool is[maxn];int prm[maxn];int num;int n, m;int sum;int getprm(int n){ int i, j, k 阅读全文
posted @ 2012-11-05 14:46 undefined2024 阅读(204) 评论(0) 推荐(0)
摘要: 如果一个质数可以表示成4x+1的形式,那么它一定可以表示成两个数字的平方和。(2是特殊情况)用素数筛打素数,并用以上定理判断是否能表示成平方和,预处理好后,对于每个询问用O(1)时间输出。注意边界值可能为负数,负数中没有质数。View Code #include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define maxn 1000005bool is[maxn];int p 阅读全文
posted @ 2012-11-05 14:10 undefined2024 阅读(167) 评论(0) 推荐(0)
摘要: 欧拉定理,对于正整数a,n,若gcd(a,n)=1,则有a^euler(n)=1(mod n)。快速幂取模算法,只要p*2在long long范围内都可以计算,对于算法中long long * long long的情况可能超界,但是我们可以用一种类似于快速幂的方法来进行次乘法计算,即快速幂是用乘法代替幂计算以便及时取模,而此算法则是用加法代替乘法计算及时取模,把快速幂中的乘法换成加法,平方换成乘2即可。题意:给出数字L,问一个各位数字都是8的L的倍数是否存在,若存在,输出其最小长度。分析:欧拉定理,我们可以列出方程(10^x - 1) / 9 = L * k / 8,推出(10^x - 1) 阅读全文
posted @ 2012-11-05 10:57 undefined2024 阅读(1117) 评论(0) 推荐(0)