上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 38 下一页
摘要: 注释掉那段会超时,呃。。#include #include #include #include #include using namespace std;const int Max=1000000;bool val[Max+1];int p[350];int main(){ int t,n; sca... 阅读全文
posted @ 2014-08-29 15:06 chenjunjie1994 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 由算术基本定理,直接使用公式就好#include #include #include #include using namespace std;const int Maxp=1000;bool isprime[Maxp];int prime[Maxp],nprime;void Doprime(){ ... 阅读全文
posted @ 2014-08-29 10:11 chenjunjie1994 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 很容易由算术基本定理知道,完全平方数就是所有质因子指数为偶数的数。而求得N以下的质因子,可由前两篇的公式知,由N!与p的关系求得。对于指数为p的,用N!除去就可以,因为p必定属于N以内,且无重复。至于除法,在下实在不会,学得别人的,记录一下。MOD数除法,可以由费马小定理a^(p-1)=1 (mod... 阅读全文
posted @ 2014-08-29 09:19 chenjunjie1994 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 只会打表#include #include #include #include using namespace std;int main(){int Mec[10] = { 11, 23, 29, 37, 41, 43, 47, 53, 59 }; char st[10][100] = ... 阅读全文
posted @ 2014-08-28 15:46 chenjunjie1994 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一道好题。由算术基本定理,知:那么,对于上式的每个因子值只能是2^M的形式。取第一个式子为例,通过分解因式出(1+p^2)=2^k知,a只能为1.于是对于p只能是梅森素数。而且每个梅森素数只能出现一次,利用这个就可以求解了,#include #include #include #include us... 阅读全文
posted @ 2014-08-28 14:35 chenjunjie1994 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 和上一题一样,注意除不尽为0#include #include #include #include using namespace std;long long n,p;int main(){ int t; scanf("%d",&t); while(t--){ scanf("%lld%lld",&... 阅读全文
posted @ 2014-08-28 09:46 chenjunjie1994 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 其实一道公式题:n!中素数i的幂为:[n/i]+[n/i^2]+[n/i^3]+[n/i^4]+......#include #include #include using namespace std;long long n;int main(){ long long two,five; int t... 阅读全文
posted @ 2014-08-28 09:19 chenjunjie1994 阅读(122) 评论(0) 推荐(0) 编辑
摘要: YEAH DONG DONG终于过了。这样思考,首先,要把所有素数求出来是不可能的。注意到L,R的差仅一百万,那么就可以只求这个范围内的素数了。而筛选范围内的素数,就可以用上一篇的方法,使用若n为合数,则必有素因子在sqrt(n)中。在筛选范围内的素数2了一次,直接判断每个数是否素数,TLE。。。#... 阅读全文
posted @ 2014-08-27 23:38 chenjunjie1994 阅读(140) 评论(0) 推荐(0) 编辑
摘要: n最大为2000000000(不知为什么OJ上是1000),若为判断2000000000是素数,则必有一个素数在sqrt(n)内,求出这个范围 的所有素数,其比最大数据小的n'的sqrt(n')也在这个范围 内。#include #include #include #include #include... 阅读全文
posted @ 2014-08-27 20:47 chenjunjie1994 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 水,用来熟悉内容#include #include #include #include #include using namespace std;const int Max=10050;bool prime[Max+10];int main(){ memset(prime,true,sizeof(p... 阅读全文
posted @ 2014-08-27 20:26 chenjunjie1994 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 其实就是筛选素数。如,若能被2是质数,则2的倍数全是合数。如此循环。#include #include #include #include #include using namespace std;const int Max=(1<<24);bool prime[Max+10];bool judge... 阅读全文
posted @ 2014-08-27 19:56 chenjunjie1994 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 可以用素数定理来解决。素数定理:小于n的素数个数记为p(n),则随着n的增长,p(n)/(n/ln(n))=1。#include #include #include #include using namespace std;int main(){ double n; while(scanf("%lf... 阅读全文
posted @ 2014-08-27 19:25 chenjunjie1994 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 其实同POJ 1061#include #include #include #include using namespace std;long long gcd(long long a,long long b){ if(b==0) return a; return gcd(b,a%b);}void... 阅读全文
posted @ 2014-08-27 15:17 chenjunjie1994 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 胡乱写一下,竟然是一次同余方程的内容。设a=n-m; b=L; d=x-y; 得ax+by=d然后,根定理,方程有解必须gcd(a,b)|d。确定有解后,两边除以gcd(a,b); 此时gcd(a',b')=1;使用EXGCD求出为1的解后再乘上d/gcd(a,b)。但要求最小解,就尽可能的把ax的... 阅读全文
posted @ 2014-08-27 14:46 chenjunjie1994 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 水#include #include #include using namespace std;long long gcd(long long a,long long b){ if(b==0) return a; return gcd(b,a%b);}int main(){ long long a,... 阅读全文
posted @ 2014-08-27 09:55 chenjunjie1994 阅读(164) 评论(0) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 38 下一页