
数论
Akahieveman
这个作者很懒,什么都没留下…
展开
-
POJ 1595 Prime Cuts
题意:输入两个数n和c你需要输出1~n中,所有素数中间2*c-1个素数如果其中有奇数个素数,如果是偶数个输出2*c个。思路:打素数表,然后通过二分法找到两头素数,之后再取中间。代码如下:#include#include#include#includeusing namespace std;typedef long long LL;#define INF 0x3f3f3f3f原创 2016-07-23 08:45:49 · 431 阅读 · 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 · 1334 阅读 · 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 · 323 阅读 · 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 · 403 阅读 · 0 评论