1349. 最大公约数 (Standard IO)

Time Limits: 1000 ms Memory Limits: 65536 KB

Description

  小菜的妹妹小诗就要读小学了!正所谓计算机要从娃娃抓起,小菜决定在幼儿园最后一段轻松的时间里教妹妹编程。

  小菜刚教完gcd即最大公约数以后,一知半解的妹妹写了如下一段代码:

   sum:=0;

   for i:=1 to n-1 do

   for j:=i+1 to n do sum:=sum+gcd(i,j)

  显然这个程序的效率是很低的,小明打算写一个更强的程序,在求出sum的同时比妹妹跑的更快。

Input

  第一行一个整数t,即表示有t组数据

  接下来t行,每行一个整数n

Output

  t行,每行一个整数,表示n所对应的sum值

Sample Input

2

10

100

Sample Output

67

13015

Data Constraint

Hint

【数据规模】

  20%数据t≤100,n≤100

  40%数据t≤1000,n≤2000

  100%数据t≤10000,n≤1000000

题解

看到了gcd,那就很明显是数论题

对这道题我们要求的是

∑i=1n−1∑j=i+1ngcd(i,j)

固定j,那么

∑i=1ngcd(i,n)
=∑i=1n∑d|n[gcd(i,n)==d]∗d
=∑i=1n∑d|n[gcd(id,nd)==1]∗d
=∑d|nφ(nd)∗d

因此,答案就是

∑i=2n∑j=1⌊n/i⌋φ(i)∗j

用前缀和优化一下

记ans[i∗j]=φ(i)∗j,答案就是

∑i=2nans[i]

代码

#include<cstdio>
#define M 80000
#define N 1000010
#define max(a,b) (((a)>(b))?(a):(b)) long a[N],p[M],phi[N],t;
long long ans[N];
bool b[N]; int main()
{ long tot,n,i,j,k,maxx=0;
scanf("%ld",&tot);
for(i=1;i<=tot;i++){
scanf("%ld",&a[i]);
maxx=max(maxx,a[i]);
}
n=maxx;
phi[1]=1;
for(i=2;i<=n;i++){
if(!b[i]){
phi[i]=i-1;
p[++t]=i;
}
for(j=1;j<=t&&i*p[j]<=n;j++){
b[i*p[j]]=true;
if(i%p[j]==0){
phi[i*p[j]]=phi[i]*p[j];
break;
}else phi[i*p[j]]=phi[i]*(p[j]-1);
}
}
for(i=2;i<=n;i++)
for(j=1;j<=n/i;j++)
ans[i*j]+=phi[i]*j;
for(i=2;i<=n;i++)
ans[i]+=ans[i-1];
for(k=1;k<=tot;k++)
printf("%lld\n",ans[a[k]]);
return 0;
}

JZOJ 1349. 最大公约数 (Standard IO)的更多相关文章

  1. JZOJ 1736. 扑克游戏 (Standard IO)

    1736. 扑克游戏 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 有一棵无穷大的满二叉树,根为sta ...

  2. JZOJ 1776. 经济编码 (Standard IO)

    1776. 经济编码 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 为降低资料储存的空间或增加资料传送 ...

  3. JZOJ 1774. 合并果子 (Standard IO)

    1774. 合并果子 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子打 ...

  4. JZOJ 2137. 【GDKOI2004】城市统计 (Standard IO)

    2137. [GDKOI2004]城市统计 (Standard IO) Time Limits: 1000 ms  Memory Limits: 128000 KB  Detailed Limits  ...

  5. JZOJ 5326. LCA 的统计 (Standard IO)

    5326. LCA 的统计 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description Input Output S ...

  6. JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)

    5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...

  7. JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)

    5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...

  8. JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)

    5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...

  9. JZOJ 5257. 小X的佛光 (Standard IO)

    5257. 小X的佛光 (Standard IO) Time Limits: 2000 ms Memory Limits: 524288 KB Description Input Output Sam ...

随机推荐

  1. day34-进程

    #进程是程序的运行,程序不运行不产生进程. #1.进程的并行与并发: # 并行:是指两者同时执行,比如赛跑,两人都在不停的往前跑.(资源够用,比如三个线程,四核的cpu) # 并发:是指资源有限的情况 ...

  2. crm项目-业务实现

    ###############  crm业务    ############### """ 校区管理,部门管理,课程管理, 这三个都比较简单 1,只需要展示校区名称,这是 ...

  3. 正则表达式grep学习(一)

    文本处理三剑客grep       文本过滤sed       流过滤awk       格式处理 正则表达式就是一些特殊字符组成的模式,赋予了他特定的含义 在大多数程序里,正则表达式都被置于两个正斜 ...

  4. springboot shiro ehcache redis 简单使用

    引入相关pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  5. Office VBA开发经典-中级进阶卷 配套资源下载

    本书源代码请到如下页面寻找: https://www.cnblogs.com/ryueifu-VBA/p/8982192.html

  6. 第一次作业:使用java实现word count

    github项目地址: https://github.com/changrui520/homework 作业要求: 可执行程序命名为:wc.exe. 该程序处理用户需求的模式为:wc.exe [par ...

  7. C++对数组进行复制

    C++ 风格的复制操作 使用STL中的copy算法 int a[] = {1,2,3,4,5}; int b[5]; std::copy(std::begin(a),std::end(a),std:: ...

  8. 第十六届“二十一世纪的计算”学术研讨会 牛津大学肿瘤成像学教授Michael Brady主题演讲

    Computing and Healthcare 牛津大学肿瘤成像学教授Michael Brady主题演讲" title="第十六届"二十一世纪的计算"学术研讨 ...

  9. mysql表关联问题(第二卷:外键1对多之2)

    接着上一卷内容我们继续: 上卷我用的查询语句我们可以看到全部数据,很明显这样的方式查找的数据并不详细: SELECT * FROM usr LEFT JOIN fzu ON usr.fzu = fzu ...

  10. supervised learning|unsupervised learning

    监督学习即是supervised learning,原始数据中有每个数据有自己的数据结构同时有标签,用于classify,机器learn的是判定规则,通过已成熟的数据training model达到判 ...