[POJ3090]Visible Lattice Points(欧拉函数)
答案为3+2*∑φ(i),(i=2 to n)
Code
#include <cstdio> int T,n,A[1010]; void Init(){ for(int i=2;i<=1000;++i)A[i]=i; for(int i=2;i<=1000;++i) if(A[i]==i)for(int j=i;j<=1000;j+=i) A[j]=A[j]/i*(i-1); for(int i=3;i<=1000;++i)A[i]+=A[i-1]; } int main(){ Init(),scanf("%d",&T); for(int i=1;i<=T;++i){ scanf("%d",&n); printf("%d %d %d\n",i,n,3+2*A[n]); } return 0; }