Description

问从点(0,0)能看到点(0,0)和(n,n)之间的矩形的多少个整数点,看到(x,y)代表点(0,0)和点(x,y)间没有其他整数点,如看不到(2,4)因为中间有点(1,2)

Input

一行一个正整数n

Output

一行一个数表示能看到多少个点

Sample Input

2

Sample Output

5

HINT

样例解释:能看到(0,1)(1,0)(1,1)(2,1)(1,2)5个点

数据范围:

对于20%的数据n<=1000

对于50%的数据n<=100000

对于100%的数据n<=10000000


非常典型的欧拉函数的应用.

不说话, 直接上代码(欧拉函数这种东西要背熟啊)

#include<iostream>
#include<string.h>
using namespace std;
/*
void phi_table()
{
memset(phi,0,sizeof(phi));
phi[1] = 1;
for(int i = 2; i <= N; i++)
if(!phi[i])
for(int j = i; j <= N; j += i)
{
if(!phi[j])
phi[j] = j;
phi[j] = phi[j] / i * (i - 1);
}
}
*/
const int maxN = (int)1e7;
int phi[maxN + 1];
int main()
{
#ifndef ONLINE_JUDGE
freopen("see.in", "r", stdin);
freopen("see.out", "w", stdout);
#endif
int n;
cin >> n;
memset(phi, 0, sizeof(phi));
phi[1] = 1;
for(int i = 2; i <= n; i ++)
if(! phi[i])
for(int j = i; j <= n; j += i)
{
if(! phi[j])
phi[j] = j;
phi[j] = phi[j] / i * (i - 1);
}
long long ans = 0;
for(int i = 1; i <= n; i ++)
ans += phi[i];
cout << ans * 2 + 1;
}

随机推荐

  1. pandas-Notes1

    #coding = utf-8 import pandas as pd import numpy as np import matplotlib as plt # series, like vecto ...

  2. octave-basic

    在coursera上斯坦福的machine learning,lecturer极力推荐开源的编程环境Octave入手,所以我也下载了来试一试吧== 参考链接:http://www.linuxdiyf. ...

  3. 【HIHOCODER 1599】逃离迷宫4

    描述 小Hi被坏女巫抓进一座由无限多个格子组成的矩阵迷宫. 小Hi一开始处于迷宫(x, y)的位置,迷宫的出口在(a, b).小Hi发现迷宫被女巫施加了魔法,假设当前他处在(x, y)的位置,那么他只 ...

  4. Java获得字节码对象的三种方式

    1.Class 类的forName方法 Class clazz = Class.forName("com.test.Test"); 该方法要注意的是会抛出一个ClassNotFou ...

  5. socketserver源码剖析

    作者:人世间链接:https://www.jianshu.com/p/357e436936bf來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处 BaseServer 和 B ...

  6. JAVA-基础(六) Java.io

    由于IDEA相对于我这种新手来说,对学习JAVA还是比较方便,后记都移步到IDEA中进行基础学习 1.File(文件类) 尽管java.io定义的大多数类是实行流式操作的,File类不是.它直接处理文 ...

  7. 静态方法中不能使用 $this

    忽略了一个问题,$this 代表当前对象!! 静态方法中应该使用 类名 . self 或者 static 关键字来代替! static public function get_info($id) { ...

  8. hiho[Offer收割]编程练习赛30

    题目1 : 提取用户名 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在现在的各种互联网应用中,在一段文字中使用'@'字符来提起一名用户是流行的做法. 例如: &quo ...

  9. 如何正确遍历删除List中的元素

    遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题.下面主要看看以下几种遍历删除List中元素的形式: 1.通过增强的for循环删除符合条件的多个元素 2.通过增强的for循环删除符合 ...

  10. EF的三种模式

    1.DateBase First(数据库优先) 2.Model First(模型优先) 3.Code First(代码优先) 当然,如果把Code First模式的两种具体方式独立出来,那就是四种了. ...