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; }