数论
Akahieveman
这个作者很懒,什么都没留下…
展开
-
POJ 1595 Prime Cuts
题意:输入两个数n和c你需要输出1~n中,所有素数中间2*c-1个素数如果其中有奇数个素数,如果是偶数个输出2*c个。 思路:打素数表,然后通过二分法找到两头素数,之后再取中间。 代码如下: #include #include #include #include using namespace std; typedef long long LL; #define INF 0x3f3f3f3f原创 2016-07-23 08:45:49 · 401 阅读 · 0 评论 -
筛素数法--模板
标准筛素数法 核心代码: const int MAXN=1005; bool flag[MAXN]; int primes[MAXN/3],pi; void prime() { int i,j;pi=0; memset(flag,false,sizeof(flag)); for(i=2;i<MAXN;i++) { if(!flag[i]) primes[pi++]=i;原创 2016-07-23 13:35:18 · 1297 阅读 · 0 评论 -
欧拉函数
欧拉函数表示的是0,1....n-1中和n互质的数的个数 模板参上: int phi(int n) { int m=(int)sqrt(n+0.5); int ans=n; for(int i=2;i<=m;i++) { if(n%i==0) { ans=ans/i*(i-1); while(n%i==0) n/=i;原创 2016-07-23 13:35:34 · 303 阅读 · 0 评论 -
欧几里得gcd+扩展欧几里得exgcd模板
gcd:辗转相除 参考核心代码: int gcd(int a,int b) { if(!b) return a; return gcd(b,a%b); } exgcd:扩展欧几里得 求gcd(x,y)=ax+by; int exgcd(int a,int b,int &x,int &y) { if(!b) { x=1; y=0; return a;原创 2016-07-24 00:16:18 · 376 阅读 · 0 评论