zoukankan      html  css  js  c++  java
  • POJ 2407 Relatives 【欧拉函数】

    裸欧拉函数。

    #include<stdio.h>
    #include<string.h>
    const int N=1e5+11;
    int p[N],pr[N],cnt;
    void init(){
        for(int i=2;i<N;i++){
            if(!p[i])pr[++cnt]=i;
            for(int j=1;j<=cnt&&i*pr[j]<N;j++){
                p[i*pr[j]]=1;
                if(i%pr[j]==0)    break;
            }
        }
    }
    int er(int n){
        int ans=n;
        for(int i=1;i<=cnt&&pr[i]*pr[i]<=n;i++){
            if(n%pr[i]==0){
                ans=ans/pr[i]*(pr[i]-1);//先除后乘,防止溢出
                while(n%pr[i]==0)
                    n/=pr[i];
            }
        }
        if(n>1)    ans=ans/n*(n-1);
        return ans;
    }
    int main(){
        int n;init();
        while(~scanf("%d",&n)&&n){
            if(n==1){
                printf("0
    ");
                continue ;
            }
            printf("%d
    ",er(n));
        }
        return 0;
    } 
  • 相关阅读:
    决策树
    交叉熵与softmax
    集成学习
    SVM算法
    蒙特卡罗方法
    K近邻--KNN
    K-Means聚类
    DBSCAN密度聚类
    Bagging、随机森林
    支持向量机SVM
  • 原文地址:https://www.cnblogs.com/L-King/p/5718202.html
Copyright © 2011-2022 走看看