本文主要是介绍#欧拉函数#jzoj 1709 洛谷 2158 仪仗队,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
求C君一次能看到多少人。
分析:
首先3个点是绝对看得到的(1,0),(0,1),(1,1)
然后从第三行开始为 φ ( n − 1 ) \varphi(n-1) φ(n−1)把它们加起来*2+3便是答案。
代码
#include <cstdio>
using namespace std;
unsigned short n,phi[40001]; int ans;
int main(){scanf("%d",&n);if (n==1) return !putchar('0');for (int i=2;i<=n;i++) phi[i]=i;for (int i=2;i<=n;i++)if (phi[i]==i) for (int j=i;j<=n;j+=i) phi[j]=phi[j]/i*(i-1);for (int i=2;i<n;i++) ans+=phi[i];return !printf("%d",(ans<<1)+3);
}
这篇关于#欧拉函数#jzoj 1709 洛谷 2158 仪仗队的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!