标签:table problem print lap src alt 之间 == pen
题目以左下角C君为0,0点 会发现C君能看到的人横纵坐标都是质数(不会证明,强行找规律),还有一点就是对称性,可以看到(2,1)点那么必然能看到(1,2)点。
那么结论就出来了:
1 -> n-1之间与phi值加和*2+1
1 #include <cstdio> 2 using namespace std; 3 int x,phi[100005],ans=1; 4 void phi_table(int n,int *phi) 5 { 6 for(int i=2;i<=n;i++) phi[i]=0; //初始化 7 phi[1]=1; 8 for(int i=2;i<=n;i++) 9 { 10 if(!phi[i]) 11 for(int j=i;j<=n;j+=i) 12 { 13 if(!phi[j]) phi[j]=j; 14 phi[j]=phi[j]/i*(i-1); 15 } 16 ans+=phi[i]; //加和 17 } 18 } 19 int main(){ 20 scanf("%d",&x); 21 if(x==1){ 22 printf("0"); 23 } 24 else { 25 phi_table(x-1,phi); 26 printf("%d",ans*2+1); 27 } 28 return 0; 29 }
标签:table problem print lap src alt 之间 == pen
原文地址:http://www.cnblogs.com/OIerLYF/p/6923163.html