HDU 1286 找新朋友

 http://acm.hdu.edu.cn/showproblem.php?pid=1286

裸欧拉函数,欧拉函数是求比n小的数中有多少个与n互质

View Code
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
#include <stack>
#include <queue>
#include <map>
#include <algorithm>
using namespace std;
const int MAX=32768;
int phi[MAX];
int main()
{
    int t,n;
    for(int i=2;i<MAX;i++)
        if(!phi[i])
            for(int j=i;j<MAX;j+=i)
            {
                if(!phi[j])
                    phi[j]=j;
                phi[j]-=phi[j]/i;
            }
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        printf("%d\n",phi[n]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xiaohongmao/p/2517339.html