首页 > 其他 > 详细

poj3090 Visible Lattice Points

时间:2018-03-04 22:42:07      阅读:182      评论:0      收藏:0      [点我收藏+]

答案就是 \(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

原文:https://www.cnblogs.com/poorpool/p/8506456.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!