题目链接:https://vjudge.net/problem/UVA-11426

题目大意: 给出整数n∈[2,4000000],求解∑gcd(i,j),其中(i,j)满足1≤i<j≤n.

的确没有想到是欧拉函数,这怎么会想到欧拉函数呢?  又不是要我们求所有gcd为1的个数  那些gcd不为1的怎么办呢?  当时怎么就没想到呢  除过去不就变为1了吗  自己是真的菜。。。

还是要多做题,把思维开阔起来!!!

思路在代码中  直接看代码:

/**
欧拉函数三个性质
是素数的话 欧拉函数值等于它本身-1
如果a是素数 b%a==0 则phi[b*a]=phi[b]*a
如果b%a!=0 则phi[b*a]=phi[b]*phi[a]
*/
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;
const int maxn=4e6+;
LL N;
LL phi[maxn],vis[maxn],p[maxn];//欧拉函数值 是否是素数 存素数
LL f[maxn],ans[maxn];
void Init()//求欧拉函数值
{
phi[]=;
int num=;
for(int i=;i<maxn;i++)
{
if(!vis[i])//是素数
{
p[num++]=i;
phi[i]=i-;//素数的欧拉函数值就等于它的值-1
}
for(int j=;j<num&&p[j]*i<maxn;j++)
{
vis[p[j]*i]=true;//肯定不是素数
if(i%p[j]==)
{
phi[i*p[j]]=p[j]*phi[i];
break;
}
else phi[i*p[j]]=phi[i]*phi[p[j]];
}
} // for(int i=1;i<=10;i++) cout<<i<<":"<<phi[i]<<" ";
return ;
}
/** 假设n等于4
(1,2) (2,3) (3,4)
(1,3) (2,4)
(1,4) 假设f[n]=(1,n)+(2,n)+···(n-1,n)
则 ans=f[2]+f[3]+···+f[n] 所以我们要求的就是f[n] 假设 gcd(1,n) gcd(2,n) ··· gcd(n-1,n)中等于i的有si个
那么gcd(s1,n)=i gcd(s2,n)=i gcd(si,n)=i
则 gcd(s1/i,n/i)=1 gcd(s2/i,n/i)=1 gcd(si/i,n/i)=1
这岂不是转换成了 总个数phi[n/i]的情形了 所以f[n]=i*phi[n/i] */
void solve()//存f[n]
{
phi[]=;
for(int i=;i<maxn;i++)//遍历i的值 同时得到f[n]的部分值
{
for(int j=i;j<maxn;j+=i)//遍历n的值
{
f[j]+=i*phi[j/i];
}
}
for(int i=;i<maxn;i++) ans[i]=ans[i-]+f[i];
return ;
}
int main()
{
Init();
solve();
//while(scanf("%lld",&N)!=EOF)
while(cin>>N)
{
if(N==) break;
cout<<ans[N]<<endl;
//printf("%lld\n",ans[N]);
}
return ;
}

GCD - Extreme(欧拉函数变形)的更多相关文章

  1. 【BZOJ】2818: Gcd(欧拉函数+质数)

    题目 传送门:QWQ 分析 仪仗队 呃,看到题后感觉很像上面的仪仗队. 仪仗队求的是$ gcd(a,b)=1 $ 本题求的是$ gcd(a,b)=m $ 其中m是质数 把 $ gcd(a,b)=1 $ ...

  2. hdu2588 GCD (欧拉函数)

    GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数.  (文末有题) 知 ...

  3. uva11426 gcd、欧拉函数

    题意:给出N,求所有满足i<j<=N的gcd(i,j)之和 这题去年做过一次... 设f(n)=gcd(1,n)+gcd(2,n)+......+gcd(n-1,n),那么answer=S ...

  4. HDU 1695 GCD (欧拉函数+容斥原理)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. HDU 1787 GCD Again(欧拉函数,水题)

    GCD Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. hdu 4983 Goffi and GCD(欧拉函数)

    Problem Description Goffi is doing his math homework and he finds an equality on his text book: gcd( ...

  7. hdu 1695 GCD(欧拉函数+容斥)

    Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD( ...

  8. HDU 1695 GCD(欧拉函数+容斥原理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意:x位于区间[a, b],y位于区间[c, d],求满足GCD(x, y) = k的(x, ...

  9. GCD(欧拉函数)

    GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...

随机推荐

  1. datebox 和 datetimebox 添加『清空』按钮

    需要引入 easyui-lang-zh_CN.js $(document).ready(function(){ var d_buttons = $.extend([], $.fn.datebox.de ...

  2. 编写高质量代码改善C#程序的157个建议——建议39:了解委托的实质

    建议39:了解委托的实质 理解C#中的委托需要把握两个要点: 1)委托是方法指针. 2)委托是一个类,当对其进行实例化的时候,要将引用方法作为它的构造方法的参数. 设想这样一个场景:在点对点文件传输过 ...

  3. c++基础之引用reference

    1.何为引用 简单来说就是,比如你换了个新名字,用新名字叫你,你也会答应 2.引用vs指针 -引用没有null,好比你说你换了个新名字,但是新名字是啥总得有点东西 -一旦引用被初始化后就不可以指到另外 ...

  4. 解决jquery操作checkbox火狐下第二次无法勾选问题

    最近在学习jQuery(版本jquery-1.9.1.js),要求用jQuery实现全选/全不选.反选,在IE(IE8)中没有问题,但在火狐浏览器中调试的时候出现了一些小问题,达不到效果. html代 ...

  5. System.Net.Http

    System.Net.Http DotNet菜园 占个位置^-^ 2018-11-10 09:55:00修改 这个HttpClient的学习笔记一直迟迟未记录,只引用了其他博主的博客链接占个位置,但被 ...

  6. ASP.NET Session原理及处理方法

    session是怎么存储,提取的 1.在服务器端有一个session池,用来存储每个用户提交session中的数据,Session对于每一个客户端(或者说浏览器实例)是“人手一份”,用户首次与Web服 ...

  7. 一个简单的tcp代理实现

    There are a number of reasons to have a TCP proxy in your tool belt, bothfor forwarding traffic to b ...

  8. SQL语句也可以重构优化

    真的,不管是程序中的代码可以重构优化,在SQL Server的语句,也是可以的.下面举个例子,在存储过程中,所传入的数据参数不能为空,另外在对数据表进行更新时,所更新的字段如果是空的话,就更新,如果传 ...

  9. C# 向TIM或者QQ自动发送中文消息【微信也是可用的】 附测试GIF

    之前用C++简单的写了一个demo 现在用C#写了完整版 定义字符 定义发送数量 定义发送对象 注意事项 QQ必须单独一个窗体 微信对象在输入名字的时候必须写微信 源代码 using System; ...

  10. 《Java多线程编程实战指南+设计模式篇》笔记

    线程的监视:工具:jvisualvm.exe 命令:jstack PID 原子性: volatile关键字: 显示锁:人为实现的程序员可控制的锁,包括synchronized和Lock下的实现类: 线 ...