see
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;
}
随机推荐
- debian 7 stable 不能编译android源码
rebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8-linaro/bin/arm-linux-androideabi-gcc: /lib/x86_ ...
- 令人惊叹的Npm工具包
1.http-server (简单搭建http服务器) 2.json-server (JSON服务器,快速搭建resful api接口) 3.cssnano (css多功能优化工具) PS:比uncs ...
- xml报错“cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element”
配置使用dubbo时,xml报错“cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be ...
- 【瓜分5000元奖金】Wannafly挑战赛13
链接:https://www.nowcoder.com/acm/contest/80/A来源:牛客网 zzy的小号 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他 ...
- PDO PDO_MYSQL MYSQLI MYSQL 的区别
MYSQL,MYSQLI 这两个扩展本身就是访问MYSQL数据库的驱动 PDO则是一个抽象层接口 向程序员提供可调用的API是由,MYSQL驱动.MYSQLI驱动,以及PDO来提供. PDO_MYSQ ...
- 浏览器提示ERR_CONTENT_DECODING_FAILED,Gzip压缩数据无法解压
最近在页面上有个显示数据表格的功能,数据由后台传给前台JS表格插件.数据格式为JSON 由于数据量很大,就想到用GZIP压缩以后传给前台.压缩前,某个表格的数据量达到3M多,用GZIP压缩后就200K ...
- 九度oj 题目1416:猴子吃坚果
题目描述: 动物园的猴子吃坚果的顺序都是按强壮程度来定的,最强壮的吃完才能轮到下一个,现在我们给出各个猴子的名字,强壮程度,吃饱的量,然后查询对应的猴子必须要扔多少坚果才可以轮到. 输入: 输入有多组 ...
- iOS--自定义相册---对象数组按照时间戳排序
将对象按照时间戳排序,这里典型的一个例子是登录账户的排序:本地客户端可能保存了多个账户信息,在登录窗口用户可以选择已经登陆过的账户直接登录,现在的需求是要时刻让最近登陆过的账户排在前面,对于每个账户, ...
- linux下编译静态库openssl
先编译zlib cmake . -DCMAKE_INSTALL_PREFIX=/depends make make install 然后编译openssl ./config zlib no-rc5 n ...
- P1382 楼房 (扫描线,线段树)
题目描述 地平线(x轴)上有n个矩(lou)形(fang),用三个整数h[i],l[i],r[i]来表示第i个矩形:矩形左下角为(l[i],0),右上角为(r[i],h[i]).地平线高度为0.在轮廓 ...