标题效果:有一个格子组件图,假设三个人在一条直线上,那么第一个人将不会看到第三人。现在,有一个人站在(1,1)在。我问他是否能看到n*n的人数的矩阵。

思考:如果你想站(1,1)这名男子看到了一个立场(x,y)一个人。gcd(x,y) == 1,这是一个经典的模型,仅仅要求出n以内phi的和就能够了。

方法就是线性筛。

CODE:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 40010
using namespace std; int n;
bool not_prime[MAX];
int prime[MAX],primes;
int phi[MAX]; void Eratosthenes(); int main()
{
cin >> n;
n--;
Eratosthenes();
int ans = 0;
for(int i = 2;i <= n; ++i)
ans += phi[i];
cout << (ans << 1) + 3 << endl;
return 0;
} void Eratosthenes()
{
phi[1] = 1;
for(int i = 2;i <= n; ++i) {
if(!not_prime[i])
prime[++primes] = i,phi[i] = i - 1;
for(int j = 1;j <= primes && prime[j] * i <= n; ++j) {
not_prime[prime[j] * i] = true;
if(i % prime[j] == 0) {
phi[i * prime[j]] = phi[i] * prime[j];
break;
}
else phi[i * prime[j]] = phi[i] * (prime[j] - 1);
}
}
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

最新文章

  1. JS生成二维码,允许中文转码
  2. 在sql脚本中获取变量中的查询结果
  3. mysql中int、bigint、smallint 和 tinyint的区别
  4. C# Socket 入门2(转)
  5. 安卓Android控件ListView获取item中EditText值
  6. 201521123015《Java程序设计》第1周学习总结
  7. NDK开发过程自认为好的一些参考资料
  8. NYOJ201作业题
  9. [DeeplearningAI笔记]神经网络与深度学习3.2_3.11(激活函数)浅层神经网络
  10. Cortex-M 实现互斥操作的三种方法
  11. Tensorflow实战系列之二:
  12. Hadoop生态圈-Oozie实战之逻辑调度执行多个Job
  13. CentOS 7安装SSHFS 实现远程主机目录 挂载为本地目录
  14. linux查看内存free
  15. JSP页面中的EL表达式介绍
  16. BURG For Ubuntu 14.04 Trusty
  17. 分布式一致性协议-2PC与3PC(二)
  18. spring security采用基于简单加密 token 的方法实现的remember me功能
  19. del语句
  20. PIE SDK与Python结合说明文档

热门文章

  1. Codeforces #28 C.Bath Queue (概率dp)
  2. 重新启动IIS不重启电脑
  3. Android 快速下载 Android framework 源码
  4. (转)Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPL
  5. Centos 6 vnc 部署
  6. UVA 10603 - Fill BFS~
  7. 9.12 Binder系统_Java实现_内部机制_Client端
  8. Surging -Demo部署
  9. ORA-00119: invalid specification for system parameter LOCAL_LISTENER;
  10. AE开发技术文档--8种数据访问方法