[HYSBZ\BZOJ2818][CQBZOJ2525]Gcd(最大公因数)
2016-01-27 09:02
253 查看
题目
参见这篇blog,将m,n视为相等的即可。
参见这篇blog,将m,n视为相等的即可。
#include<cstdio> #include<algorithm> using namespace std; #define MAXN 10000000 int mu[MAXN+10],p[MAXN+10],pcnt,n,sum[MAXN+10]; long long ans; bool f[MAXN+10]; void Read(int &x){ char c; while(c=getchar(),c!=EOF) if(c>='0'&&c<='9'){ x=c-'0'; while(c=getchar(),c>='0'&&c<='9') x=x*10+c-'0'; ungetc(c,stdin); return; } } void prepare(){ int i,j; mu[1]=1; for(i=2;i<=n;i++){ if(!f[i]) p[++pcnt]=i,mu[i]=-1,sum[i]=1; for(j=1;p[j]*i<=n;j++){ f[p[j]*i]=1; if(i%p[j]==0){ mu[i*p[j]]=0; sum[i*p[j]]=mu[i]; break; } mu[i*p[j]]=-mu[i]; sum[i*p[j]]=mu[i]-sum[i]; } sum[i]+=sum[i-1]; } } void solve(){ int i,last; for(i=1;i<=n;i=last+1){ last=n/(n/i); ans+=1ll*(sum[last]-sum[i-1])*(n/i)*(n/i); } } int main() { Read(n); prepare(); solve(); printf("%lld",ans); }
相关文章推荐
- Expandable Table的Demo
- npm 模块安装机制简介
- Oracle OS Watcher 工具 使用详解
- Android调用系统内部功能错误
- GNU Tools
- 支付宝集分宝接口开发的相关问题解答
- android 参数 加密,解密 参数提交,数据返回
- php之番外
- 事件日志监控工具推荐
- PHP数据访问
- 如何改变讨好型人格?修
- 背包算法
- PHP面向对象
- 同余运算及其基本性质(证明)
- 微软完整开源了用于语音识别的深度学习工具包 CNTK
- 非常有趣的动态规划介绍
- PHP正则表达式
- Android屏幕适配全攻略(最权威的官方适配指导)
- 《Android源码设计模式解析与实战》读书笔记(二十六)
- IOS-50-微信朋友圈一片模糊,教你在Mac和window系统下如何实现网络数据抓包