AcWing 201. 可见的点

2021-03-01 12:25

阅读:427

标签:osi   while   return   cin   org   class   its   情况下   rgb   

在一个平面直角坐标系的第一象限内,如果一个点(x,y)与原点(0,0)的连线中没有通过其他任何点,则称该点在原点处是可见的。

编写一个程序,计算给0的可见点(x,y)的数量(可见点不包括原点)。

 

#include#define N 10000
#define ll long long
using namespace std;
int pr[N],phi[N],v[N];
ll sum[N];
void ol(int x)
{
    phi[1]=pr[1]=1;
    int cut=0;
    for(int i=2;i)
    {
        if(v[i]==0)pr[++cut]=i,phi[i]=i-1;
        for(int j=1;pr[j])
        {
            v[i*pr[j]]=pr[j];
            if(i%pr[j]==0)
            {
                phi[i*pr[j]]=pr[j]*phi[i];
                break;
            }
            phi[i*pr[j]]=phi[i]*(pr[j]-1);
        }
    }
    for(int i=1;i1000;i++)sum[i]=sum[i-1]+phi[i];
}
int main()
{
    int t;
    cin>>t;
    int k=0;
    ol(1000);
    while(++kt)
    {
        int n;cin>>n;
        printf("%d %d %lld\n",k,n,2*sum[n]+1);
    }
    return 0;
}

 

AcWing 201. 可见的点

标签:osi   while   return   cin   org   class   its   情况下   rgb   

原文地址:https://www.cnblogs.com/1314cyd/p/14351577.html


评论


亲,登录后才可以留言!