poj3090 Visible Lattice Points

Posted poorpool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj3090 Visible Lattice Points相关的知识,希望对你有一定的参考价值。

答案就是 \(3+2 \times \sum_{i=2}^n \varphi(i)\),记得特判

#include <iostream>
#include <cstdio>
using namespace std;
int n, T, phi[1005];
void shai(){
    for(int i=1; i<=1000; i++)
        phi[i] = i;
    for(int i=2; i<=1000; i++)
        if(phi[i]==i)
            for(int j=i; j<=1000; j+=i)
                phi[j] = phi[j] / i * (i - 1);
}
int main(){
    shai();
    for(int i=3; i<=1000; i++)
        phi[i] += phi[i-1];
    cin>>T;
    for(int i=1; i<=T; i++){
        scanf("%d", &n);
        if(n==1){
            printf("%d %d 3\n", i, n);
            continue;
        }
        printf("%d %d %d\n", i, n, 3+2*phi[n]);
    }
    return 0;
}

以上是关于poj3090 Visible Lattice Points的主要内容,如果未能解决你的问题,请参考以下文章

poj3090 Visible Lattice Points [欧拉函数]

POJ3090Visible Lattice Points

POJ3090:Visible Lattice Points——题解

poj3090 Visible Lattice Points

POJ_3090 Visible Lattice Points 欧拉函数 + 递推

[poj] 3090 Visible Lattice Points