zoukankan      html  css  js  c++  java
  • 欧拉函数

    抄的别人博客的欧拉函数的板子.

    好的.出处我也不清楚...抱歉...

    const int maxnn2 = maxn * 2;
    int isprime[maxnn2],phi[maxnn2],p[maxnn2],nump;
    //m[i]标记i是否为素数,0为素数,1不为素数;p是存放素数的数组;nump是当前素数个数;phi[i]为欧拉函数
    void make(int maxnn)
    {
        phi[1]=1;
        for (int i=2;i<=maxnn;i++)
        {
            if (!isprime[i])//i为素数
            {
                p[++nump]=i;//将i加入素数数组p中
                phi[i]=i-1;//因为i是素数,由特性得知    
            }    
            for (int j=1;j<=nump&&p[j]*i<maxnn;j++)  //用当前已的到的素数数组p筛,筛去p[j]*i
            {
                isprime[p[j]*i]=1;//可以确定i*p[j]不是素数 
                if (i%p[j]==0) //看p[j]是否是i的约数,因为素数p[j],等于判断i和p[j]是否互质 
                {
                    phi[p[j]*i]=phi[i]*p[j]; //特性2
                    break;
                }
                else phi[p[j]*i]=phi[i]*(p[j]-1); //互质,特性3其,p[j]-1就是phi[p[j]]   
            }
        }
    }
  • 相关阅读:
    webpack
    react 原理
    jest
    input 自动获取焦点
    taro
    html5标签
    webpack
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/cgjh/p/9517343.html
Copyright © 2011-2022 走看看