from:
https://www.cnblogs.com/Miroerwf/p/7776390.html
https://blog.csdn.net/dream_ysl/article/details/7934471
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=2098
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=20001;
int prime[N],phi[N],cnt;// prime:记录质数,phi记录欧拉函数
int Min_factor[N];// i的最小素因子
bool vis[N];
void Init()
{
cnt=0;
phi[1]=1;
int x;
for(int i=2;i<N;i++)
{
if(!vis[i])
{
prime[++cnt]=i;
phi[i]=i-1;
Min_factor[i]=i;
}
for(int k=1;k<=cnt&&prime[k]*i<N;k++)
{
x=prime[k]*i;
vis[x]=true;