数论一丢丢模板

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+7;
const ll mod=1e9+7;
bool a[maxn];///存放对于i是否是素数的判断
///试除法
bool priem(ll n)
{
    if(n==1)
        return false;
    for(ll i=2;i*i<=n;i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}
///唉式筛
void ai()
{
    a[1]=false;
   for(int i=2;i<maxn;i++)
        a[i]=true;
   for(int i=2;i<maxn;i++)
   {
       if(a[i])
       {
           for(int j=i*2;j<maxn;j+=i)///优化的话就把出书画改成j=i*i
            a[j]=false;
       }
   }
}
///线性筛(欧拉筛)
void oula(ll N)
{
    bool number[N+1];
    ll prime[N+1];
    ll i,j,count=0;
    memset(number,true,sizeof(number));
    for(i=2;i<=N;i++)
    {
        if(number[i])
            prime[count++]=i;
        for(j=0;j<count&&prime[j]*i<=N;j++)
        {
            number[prime[j]*i]=false;
            if(i%prime[j]==0)//精华就在于此:它保证每个合数只会被它的最小质因数筛去,因此每个数只会被标记一次,所以时间复杂度是O(n)
                break;
        }
    }
    for(i=2;i<N+1;i++)
        if(number[i]==true)
            printf("%d ",i);
}
///欧拉函数
ll phi(ll n)
{
    ll i,rea=n;
    for(i=2;i*i<=n;i++)
    {
        if(n%i==0)
        {
            rea=rea-rea/i;
            while(n%i==0)
                n/=i;
         }
    }
    if(n>1)
        rea=rea-rea/n;
    return rea;
}
///快速幂
ll quickpow(ll base,ll mi)
{
    ll ans=1;
    while(mi)
    {
        if(mi&1)
            ans=ans*base%mod;
        base=base*base%mod;
        mi>>=1;
    }
    return ans;
}
///唯一分解
void fen(ll n)
{
    int a[1000][2];
    int w=0;
    ll t=n;
    for(int i=2;i<maxn&&n;i++)
    {
        if(priem(i))
        {
          if(n%i==0)
          {
              a[w][0]=i;
              int m=0;
              while(n%i==0)
              {
                 m++;
                 n/=i;
              }
              a[w][1]=m;
              w++;
          }
        }
    }
    cout<<t<<"=";
    for(int i=0;i<w;i++)
        cout<<a[i][0]<<"^"<<a[i][1]<<"*";
    cout<<endl;
}
int main()
{
    ll y,b;

    return 0;
}

 

posted @ 2019-02-25 16:25  悲离  阅读(118)  评论(0编辑  收藏  举报