发现对于gcd问题要多和欧拉函数联系在一起,虽然有时候并不是互质,但是我们知道有多少互质的然后根据互质的数目就能解决很多个gcd的问题

对于这道题目,题目要求的是所有数对的gcd的和,直接思考的话有难度。但是我们如果联想到欧拉函数问题就解决了许多。

我们对于每个数都考虑他的欧拉函数值,即有phi[x]个数和x互质,设gcd(x,i)=1,那么gcd(tx,ti)=t,因为我们考虑的是所有互质的数,所以可以证明每对数都会被访问一次且只会访问一次。

所以我们要做的就是得到欧拉函数值,然后对于每个数字x,和tx的最大公约数为t的数目肯定也只有phi[x]个,那么关于x的所有的gcd和就是(1+2+…+t)*phi[i],求和就可以了

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<ctime>
#include<climits>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;typedef long long ll;
const int INF=0x3f3f3f3f;
const int MAXN=4e6+5;int n;
int phi[MAXN];
int prime[MAXN];
bool check[MAXN];
int tot;void creat_phi()
{tot=0;phi[1]=1;for(int i=2;i<MAXN;i++){if(!check[i]){phi[i]=i-1;prime[tot++]=i;}for(int j=0;j<tot && prime[j]*i<MAXN;j++){check[i*prime[j]]=true;if(i%prime[j]){phi[i*prime[j]]=(prime[j]-1)*phi[i];}else{phi[i*prime[j]]=prime[j]*phi[i];break;}}}
}int main()
{creat_phi();ll ans,t;while(~scanf("%d",&n) && n){ans=0;for(int i=2;i<=n;i++){t=n/i;ans+=t*(t+1)/2*phi[i];}printf("%lld\n",ans);}return 0;
}

UVa11426——欧拉函数相关推荐

  1. UVA11426 GCD - Extreme (II)【欧拉函数】

    Given the value of N, you will have to find the value of G. The definition of G is given below: G=∑i ...

  2. GCD - Extreme(欧拉函数变形)

    题目链接:https://vjudge.net/problem/UVA-11426 题目大意: 给出整数n∈[2,4000000],求解∑gcd(i,j),其中(i,j)满足1≤i<j≤n. 的 ...

  3. poj2154-color-polyan次二面体+欧拉函数优化

    N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...

  4. hdu 1286( 欧拉函数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...

  5. 费马定理中值定理_数论-欧拉函数、欧拉定理

    欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...

  6. poj2154(Polya+欧拉函数优化模版)

    #include <cstdio> #include <cstring> #include<iostream> using namespace std; const ...

  7. 【数学专题】约数个数与欧拉函数

    整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...

  8. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  9. bzoj 1409 Password 矩阵快速幂+欧拉函数

    可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...

最新文章

  1. 查看mysql是否启动_Mysql查看是否使用到索引
  2. 006商城项目:该项目的路径访问问题
  3. 获得本页面URL地址
  4. android aidl工具,【Android】AIDL介绍和实例讲解
  5. gcc g++ 支持c++11编译的标准和区别
  6. 唤醒屏幕_小度在家VS天猫精灵CC 屏幕正在让智能音箱进入下一版本
  7. (待补充)CSS进阶--flex布局
  8. win10中关闭应用程序自动更新
  9. 适合户外显示中玩耍的游戏
  10. 重置浏览器的css,css重置浏览器默认样式
  11. 软件项目管理 第七章 进度计划
  12. 软考笔记(九)高级系统架构师/分析师:软件工程与项目管理
  13. 速卖通尺寸表 html源码,最新!速卖通尺码表功能上线
  14. tf.ones_like()函数用法详解(附代码理解)
  15. 基于HC32L13X系列的YModem升级方案
  16. 人生性格、爱情与酒场哲学
  17. ioi 赛制_《Produce48》现坑爹赛制 网友称这波操作令人窒息
  18. Andriod Studio虚拟机启动失败解决方案
  19. java 创建二维码
  20. 《金蝶ERP-K/3完全使用详解》—— 导读

热门文章

  1. mysql启动错误排查-无法申请足够内存
  2. loss function
  3. [Algorithm] 字符串匹配算法——KMP算法
  4. HTTP基础10--web(2)
  5. OpenFire源码学习之十九:在openfire中使用redis插件(上)
  6. 《Two Dozen Short Lessons in Haskell》(二十)分数
  7. 【转贴备忘】[教程]iPhone 實機開發 Part 1 - HelloWorld
  8. pHp中文网零基础,零基础编程
  9. caffe 人脸关键点检测_人脸检测关键点新增至81个,比Dlib更精准、更贴边
  10. mysql游标表间数据迁移_FalseMySQL存储过程--gt;通过游标遍历和异常处理迁移数据到历史表-mysql-第二电脑网...