//
#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<vector>
#include<iomanip>
using namespace std;
int main()
{
int t,n,sum;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
sum=n;
for(int i=;i<=sqrt(n);i++)
{
if(n%i==)
{
sum=sum/i*(i-);
while(n%i==)
n/=i;
}
}
if(n>)
sum=sum/n*(n-);
printf("%d\n",sum);
}
return ;
}
//
#include<cstdio>
#include<cstring>
#define size 3000001
int euler[size];
void Init()
{
memset(euler,,sizeof(euler));
euler[]=;
for(int i=; i<size; i++)
if(!euler[i])
for(int j=i; j<size; j+=i)
{
if(!euler[j])
euler[j]=j;
euler[j]=euler[j]/i*(i-);//先进行除法是为了防止中间数据的溢出
}
}
int main()
{
int a,b;
Init();
while(scanf("%d%d",&a,&b)!=EOF)
{
long long ans=;
for(int i=a;i<=b;i++)
ans+=euler[i];
printf("%lld\n",ans);
}
return ;
}
/*******************************************************/
模板:
()直接求小于或等于n,且与n互质的个数:
int Euler(int n)
{
int ret=n;
for(int i=;i<=sqrt(n);i++)
if(n%i==)
{
ret=ret/i*(i-);//先进行除法防止溢出(ret=ret*(1-1/p(i)))
while(n%i==)
n/=i;
}
if(n>)
ret=ret/n*(n-);
return ret;
}
/********************************************************/
筛选模板:求[,n]之间每个数的质因数的个数
#define size 1000001
int euler[size];
void Init()
{
memset(euler,,sizeof(euler));
euler[]=;
for(int i=;i<size;i++)
if(!euler[i])
for(int j=i;j<size;j+=i)
{
if(!euler[j])
euler[j]=j;
euler[j]=euler[j]/i*(i-);//先进行除法是为了防止中间数据的溢出
}
}
/*****************************************************/
//比上面更快的方法
#include<cstdio>
using namespace std;
const int N = 1e6+ ;
int phi[N], prime[N];
int tot;//tot计数,表示prime[N]中有多少质数
void Euler(){
phi[] = ;
for(int i = ; i < N; i ++){
if(!phi[i]){
phi[i] = i-;
prime[tot ++] = i;
}
for(int j = ; j < tot && 1ll*i*prime[j] < N; j ++){
if(i % prime[j]) phi[i * prime[j]] = phi[i] * (prime[j]-);
else{
phi[i * prime[j] ] = phi[i] * prime[j];
break;
}
}
}
} int main(){
Euler();
}

*HDU 1286,2824欧拉函数的更多相关文章

  1. hdu 2824(欧拉函数)

    The Euler function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  2. HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演

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

  3. HDU 2588 GCD (欧拉函数)

    GCD Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status De ...

  4. HDU 1695 GCD 欧拉函数+容斥定理

    输入a b c d k求有多少对x y 使得x在a-b区间 y在c-d区间 gcd(x, y) = k 此外a和c一定是1 由于gcd(x, y) == k 将b和d都除以k 题目转化为1到b/k 和 ...

  5. hdu 6434 Count (欧拉函数)

    题目链接 Problem Description Multiple query, for each n, you need to get $$$$$$ \sum_{i=1}^{n} \sum_{j=1 ...

  6. HDU 1695 GCD (欧拉函数,容斥原理)

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

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

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

  8. Problem I. Count - HDU - 6434(欧拉函数)

    题意 给一个\(n\),计算 \[\sum_{i=1}^{n}\sum_{j=1}^{i-1}[gcd(i + j, i - j) = 1]\] 题解 令\(a = i - j\) 要求 \[\sum ...

  9. HDU 3501【欧拉函数拓展】

    欧拉函数 欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) . 通式:φ(x)=x*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)-..(1- ...

  10. GuGuFishtion HDU - 6390 (欧拉函数,容斥)

    GuGuFishtion \[ Time Limit: 1500 ms\quad Memory Limit: 65536 kB \] 题意 给出定义\(Gu(a, b) = \frac{\phi(ab ...

随机推荐

  1. oracle本机登录不上dba的权限不足错误

    说明:因遇到“sqlplus / as sysdba”登录oracle时遇到权限不足(ora-01031)错误:百度到以下资料,原文链接: http://www.xifenfei.com/2011/1 ...

  2. scrollTo 和 scrollBy

      涉及到滑动,就涉及到VIEW,大家都知道,Android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的 ...

  3. Linux学习笔记(16)shell基础之Bash变量

    1. 用户自定义变量 (1)变量设置规则 ① 变量名称可由字母.数字和下划线组成,但不能以数字开头: ② 变量的默认类型为字符串类型,如果要对数值运算,则必须指定变量类型为数值型: ③ 变量用等号连接 ...

  4. CSS3动画属性animation的用法

    转载: 赞生博客 高端订制web开发工作组 » CSS3动画属性animation的用法 CSS3提供了一个令人心动的动画属性:animation,尽管利用animation做出来的动画没有flash ...

  5. css用clearfix清除浮动

    本文从http://www.studyofnet.com/news/196.html复制.   本文导读:写css 时总为浮动而烦恼,如果用了浮动,浮动的父层不会跟着浮动框的高度增加而增加,在Fire ...

  6. Dev 控件问题多少

    150702  编译BPL_MonitorView.bpl包发现提示找不到cxBarEditItemD16包, =>我将此包和往下的 dxSkin**包都尝试性删除,编译提示要加载包,点击确定, ...

  7. 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts

    题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...

  8. 看Ue4角色代码——跳跃与实现二段跳

    看了一下终于发现了跳跃的关键代码 bool UCharacterMovementComponent::DoJump(bool bReplayingMoves) { if ( CharacterOwne ...

  9. Codeforces 611C New Year and Domino(二维前缀和)

    题目大概说给一个n*m个格子,格子'.'表示可以放东西,多次询问矩形区域(x1,y1)-(x2,y2)有几种放一张1*2的骨牌的方案数. 分别考虑横着竖着放,预处理出二维的前缀和,即sum[x][y] ...

  10. Shell 编程基础之基本语法结构汇总

    一.条件语句 简单条件 if [ condition ]; then # 当 condition 成立时,执行内容: fi # 将 if 反过来写,fi 结束 if 之意 复杂条件 if [ cond ...