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. Magento Order 状态详解

    流程图:

  2. 利用Marshal.AllocHGlobal申请非托管内存,unsafe代码

    unsafe public class RUN { int[] array3; IntPtr handle; ; public RUN() { handleCount = * ; handle = S ...

  3. 数组声明的几种方式以及length属性

    声明一: int[] arr=new int[10]; for(int i=0;i<arr.length;i++){ arr[i]=i; } 声明二: int[] arr2={1,2,3}; 声 ...

  4. Suricata的所有运行方式模式(图文详解)

    不多说,直接上干货! suricata的基本组成.Suricata是由所谓的线程(threads).线程模块 (thread-modules)和队列(queues)组成.Suricata是一个多线程的 ...

  5. AJPFX关于File类复习

    file是一个路径,分为相对路径(eclipse)和绝对路径:1.构造方法有:File(String pathname ),File(String parent ,String child),File ...

  6. TabLayout+ViewPager实现标签卡效果

    转载请注明原文地址:http://www.cnblogs.com/yanyojun/p/8082391.html 代码已经上传至Github:https://github.com/YanYoJun/V ...

  7. [Android]如何实现无限滚动的ListViw/GridView(翻译)

    ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验 ...

  8. Java Hello World 错误 找不到或无法加载主类

    Java 有几年没用了 生疏了好多 最近又捡起来 结果第一个Hello World 就在黑窗口内报错! 遇到几个小问题. 1. 安装JDK后 在 CMD 中 执行 java -version 正常 因 ...

  9. vue HTTP请求(针对vue-resource)

    //初始化页面需要做什么事情 //点击后需要做什么事情 //鼠标.键盘.冒泡.默认行为等事件 //前端调用接口就是按需展示数据//created和mounted里面都可以做数据处理,唯一不同的是cre ...

  10. 迅为电子4.3寸CAN总线工业平板电脑简介

    型号:iTOP-HMI043-C 4.3寸CAN总线工业平板电脑支持CAN通讯显示器,显示:显示尺寸:4.3英寸:分辨率:480×272 TFT液晶 65536色 :接口:支持CAN 2.0B:USB ...