poj                         Relatives                               
Time Limit: 1000MS   Memory Limit: 65536K
            
                                                                            
                                                                             ->  题目连接 <-
     题目就不用占地方了,以后都用链接来吧;
     这道题就是一个欧拉函数的应用,学了欧拉函数应该没什么问题,但欧拉函数需要注意的是如果题目没有明确要求的话euler(1)的值一般是1;
     欧拉函数用来求解1-n-1中与n互质的数的数目,类似于素数问题,先将所要求的数m分解质因数为p1,p2,p3....,这些质因数两两不等,则euler(m)=m*(1-1/Pi),累加符号不会,将就看看;
     博主也是看了好久,虽然还没下定决心开始研究数论,不过学妹jian问了问这个问题,奈何没学过,就让人家去找学长了................
void fun(int x)
{
int ans=x,n=x;
for(int i=2;i*i<=n;i++)
if(n%i==0)
{
ans-=ans/i;就相当于a*(1-1/p);
while(n%i==0)
n/=i;
}
if(n>1) ans-=ans/n;
printf("%d\n",ans);
}//感觉这个函数效率还是蛮高的;
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
fun(n);
}
return 0;
}

nyoj                                        mdd的烦恼

时间限制:1000 ms  |  内存限制:65535 KB
难度:3


                                                                             ->  题目链接 
<-

          nyoj上的这道题和上面的简直一模一样,只不过题目所给的数据范围很大,用long long 可以表示,但是欧拉函数不会超时吗?当然不会,前面已经提到过这个效率特别高,65535的平方也即是表明程序只能跑到65535,多者超出范围,数据全用long long 表示,我们注意,这个n也是一直在减小的,所以更不用担心超时了,把上面的程序全部改成long
long 便可以了;
void fun(long long x)
{
long long ans=x,n=x;
for(long long i=2; i*i<=n; i++)
if(n%i==0)
{
ans-=ans/i;
while(n%i==0)
n/=i;
}
if(n>1) ans-=ans/n;
printf("%lld\n",ans);
}
int main()
{
long long n;
while(~scanf("%lld",&n)&&n)
{
fun(n);
}
return 0;
}//这里就不再赘述了;




   下面来介绍一下欧拉函数筛法打表,类似于素数打表,十分精简;
const int N=1000000+10;
int euler[N];
void Init( )
{
memset(euler,0,sizeof(euler));
euler[1]=1;//初始化1,请注意根据实际情况做出更改;
for(int i=2; i<N; i++)
if(!euler[i])
{
for(int j=i; j<N; j+=i)//类似于素数筛法打表;
{
if(!euler[j])
euler[j]=j;
euler[j]-=euler[j]/i;//关键;
}
}
}
int main()
{
int n;
Init();
while(~scanf("%d",&n)&&n)
{
printf("%d\n",euler[n]);
}
return 0;
}

  

POJ-20407Relatives/NYOJ-333mdd的烦恼,欧拉函数简单应用,模板A的更多相关文章

  1. poj 2154 Color(polya计数 + 欧拉函数优化)

    http://poj.org/problem?id=2154 大致题意:由n个珠子,n种颜色,组成一个项链.要求不同的项链数目.旋转后一样的属于同一种.结果模p. n个珠子应该有n种旋转置换.每种置换 ...

  2. POJ 2773 Happy 2006【GCD/欧拉函数】

    根据欧几里德算法,gcd(a,b)=gcd(a+b*t,b) 如果a和b互质,则a+b*t和b也互质,即与a互质的数对a取模具有周期性. 所以只要求出小于n且与n互质的元素即可. #include&l ...

  3. POJ 3696 The Luckiest number (欧拉函数,好题)

    该题没思路,参考了网上各种题解.... 注意到凡是那种11111..... 22222..... 33333.....之类的序列都可用这个式子来表示:k*(10^x-1)/9进而简化:8 * (10^ ...

  4. POJ 3090 Visible Lattice Points 【欧拉函数】

    <题目链接> 题目大意: 给出范围为(0, 0)到(n, n)的整点,你站在(0,0)处,问能够看见几个点. 解题分析:很明显,因为 N (1 ≤ N ≤ 1000) ,所以无论 N 为多 ...

  5. nyoj 1007 GCD(数学题 欧拉函数的应用)

    GCD 描述 The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b) ...

  6. 题解报告:poj 2480 Longge's problem(欧拉函数)

    Description Longge is good at mathematics and he likes to think about hard mathematical problems whi ...

  7. 【poj 2407】Relatives(数论--欧拉函数 模版题)

    题意就是求10^9以内的正整数的欧拉函数(Φ(n)表示<=n的与n互质的正整数个数). 解法:用欧拉筛和欧拉函数的一些性质:    1.若p是质数,Φ(p)=p-1:    2.欧拉函数是积性函 ...

  8. POJ_2478 Farey Sequence 【欧拉函数+简单递推】

    一.题目 The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbe ...

  9. poj 1284 Primitive Roots(原根+欧拉函数)

    http://poj.org/problem?id=1284 fr=aladdin">原根 题意:对于奇素数p,假设存在一个x(1<x<p),(x^i)%p两两不同(0&l ...

随机推荐

  1. 博弈 HDOJ 4371 Alice and Bob

    题目传送门 题意:Alice和 Bob轮流写数字,假设第 i 次的数字是S[i] ,那么第 i+1 次的数字 S[i+1] = S[i] + d[k] 或 S[i] - d[k],条件是 S[i+1] ...

  2. 题解报告:NYOJ 题目139 我排第几个(康托展开)

    描述 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? 输入 第一行有一个整数n(0<n<=1 ...

  3. 转 php中$_request与$_post、$_get的区别

    php中有$_REQUEST与$_POST.$_GET用于接受表单数据,当时他们有何种区别,什么时候用那种最好. 一.$_REQUEST与$_POST.$_GET的区别和特点 $_REQUEST[]具 ...

  4. 215 Kth Largest Element in an Array 数组中的第K个最大元素

    在未排序的数组中找到第 k 个最大的元素.请注意,它是数组有序排列后的第 k 个最大元素,而不是第 k 个不同元素.例如,给出 [3,2,1,5,6,4] 和 k = 2,返回 5.注意事项:你可以假 ...

  5. LN : leetcode 118 Pascal's Triangle

    lc 118 Pascal's Triangle 118 Pascal's Triangle Given numRows, generate the first numRows of Pascal's ...

  6. vue组件、数据解析的实现思想猜想与实践

    Vue的全局组件,在注册后,可在全局范围内无限次使用,猜想是利用了闭包"可以保持形参"的特性,使初始化时的作用域得意保存,下面用原生js和部分jquery代码模拟了数据解析和组件渲 ...

  7. 微信官方UI库—WeUI

    WeUI 为微信 Web 服务量身设计 概述 WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一.包含button.cell ...

  8. git push失败the remote end hung up unexpectedly

    Git Push是老是失败,提示: fatal: the remote end hung up unexpectedly git did not exit cleanly (exit code 1) ...

  9. 用16G内存在Java

    用16G内存在Java Map中处理30亿对象 在一个下雨的夜晚,我在思考Java中内存管理的问题,以及Java集合对内存使用的效率情况.我做了一个简单的实验,测试在16G内存条件下,Java的Map ...

  10. jQuery核心语法

    .each只是处理jQuery对象的方法,jQuery还提供了一个通用的jQuery.each方法,用来处理对象和数组的遍历 jQuery/($).each(array, callback )jQue ...