GCD Again

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 2611    Accepted Submission(s): 1090

Problem Description
Do you have spent some time to think and try to solve those unsolved problem after one ACM contest?

No?

Oh, you must do this when you want to become a "Big Cattle".

Now you will find that this problem is so familiar:

The greatest common divisor GCD (a, b) of two positive integers a and b, sometimes written (a, b), is the largest divisor common to a and b. For example, (1, 2) =1, (12, 18) =6. (a, b) can be easily found by the Euclidean algorithm. Now I am considering a little
more difficult problem:

Given an integer N, please count the number of the integers M (0<M<N) which satisfies (N,M)>1.

This is a simple version of problem “GCD” which you have done in a contest recently,so I name this problem “GCD Again”.If you cannot solve it still,please take a good think about your method of study.

Good Luck!

 
Input
Input contains multiple test cases. Each test case contains an integers N (1<N<100000000). A test case containing 0 terminates the input and this test case is not to be processed.
 
Output
For each integers N you should output the number of integers M in one line, and with one line of output for each line in input.
 
Sample Input
2
4
0
 
Sample Output
0
1
 
 
知识储备:
 
一.互质的概念:

1、定义

    互质(relatively primeì)又叫互素。若N个整数的最大公因数是1,则称这N个整数互质。

  比如8,10的最大公因数是2,不是1,因此不是整数互质。

  7,10,13的最大公因数是1,因此这是整数互质。

  5和5不互质,由于5和5的公因数有1、5。

  1和不论什么数都成倍数关系,但和不论什么数都互质。由于1的因数仅仅有1,而互质数的原则是:仅仅要两数的公因数仅仅有1时。就说两数是互质数。1仅仅有一个因数(所以1既不是质数(素数),也不是合数),无法再找到1和其它数的别的公因数了。所以1和不论什么数都互质(除0外)。

  互质数的写法:如c与m互质,则写作(c,m)=1。

  小学数学教材对互质数是这样定义的:“公约数仅仅有1的两个数。叫做互质数。”

  这里所说的“两个数”是指自然数。

  “公约数仅仅有 1”,不能误说成“没有公约数。

二.欧拉函数:

1.定义:

 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。比如euler(8)=4,由于1,3,5,7均和8互质。

2.说明:

Euler函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),当中p1,p2……pn为x的全部素因数。x是不为0的整数。

(注意:每种质因数仅仅一个。比方 12 = 2*2*3 那么      φ(12) = 12 * (1-1/2) * (1-1/3)=4  )

euler(1)=1(唯一和1互质的数(小于等于)就是1本身)。

欧拉函数性质:  1、  φ(mn) = φ(m) φ(n)

2、若n为奇数。φ(2n) = φ(n)。

欧拉公式的延伸:一个数的全部质因子之和是euler(n)*n/2。

注意:在欧拉函数中,函数值是 [ 1 , n ] 中与 n  互质数个数

题意:
求小于n的gcd(i,n)大于1的个数 
思路 : 欧拉函数直接求gcd(i,n)==1的个数  用n减就可以,注意小于n,故再减去1.
 
详细代码例如以下:
 
#include<stdio.h>

int euler(int n)//欧拉函数
{
int res=n,i;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
res=res/i*(i-1);//先进行除法是为了防止中间数据的溢出
while(n%i==0)
n/=i;//保证n一定是素数
}
if(n>1)
res=res/n*(n-1);
return res;
} int main()
{
int n;
while(scanf("%d",&n)&&n!=0)
printf("%d\n",n-euler(n)-1);//题目要求小于n,故还要减去1
return 0;
}

HDOJ 1787 GCD Again(欧拉函数)的更多相关文章

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

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

  2. hdu 1787 GCD Again (欧拉函数)

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

  3. hdu2588 GCD (欧拉函数)

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

  4. uva11426 gcd、欧拉函数

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

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

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

  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 ...

  10. HDU 2588 GCD(欧拉函数)

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

随机推荐

  1. Vim简明教程【CoolShell】

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...

  2. Spring(一)简述(转载)

    原文出自:http://www.cnblogs.com/liunanjava/p/4396794.html 一.Spring简述 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量 ...

  3. ios开发之代理&&协议(补充篇)

    一.理解协议与代理 协议: 协议是一个方法签名的列表,在其中可以定义若干个方法.根据配置,遵守该协议的类会去实现这个协议中规定的若干个方法. 代理: 代理是一个概念,很难用一个名词去定义(如我们可以说 ...

  4. spring Mvc json返回json的日期格式问题

    (一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...

  5. uboot的jumptable_init函数分析

    一.函数说明 函数功能:安装系统函数指针 函数位置:common/exports.c 二.函数分析 void jumptable_init (void) { int i; gd->jt = (v ...

  6. asp.net mvc4 webapi Post 参数 字符串

    用  mvc4中的WEBAPI, Post 到后台的参数如果为string,则直接接收不到,解决方案有两种 1.传递参数为自定义类 2.通过如下方式获取: //获取传统context var cont ...

  7. JavaScript的组成—ECMAScript、BOM和DOM

      JavaScript 是一种基于 ECMAScript 规范的脚本语言,并在此基础上进行了自己的封装.ECMAScript 不是一种编程语言,仅仅是一种脚本语言规范,由欧洲计算机协会制定和发布,任 ...

  8. 关于Weblogic Server(介绍)

    Weblogic, 美国Oracle公司名下产品,是一个基于 J2EE 架构.可扩展的应用服务器. 本文档选取部分官方文档翻译 总览 支持多种类型的分布式应用 基于 SOA 应用的理想架构 完整实现 ...

  9. Xcode 5 解决 The operation couldn’t be completed. (NSURLErrorDomain error -1012.) 问题

    使用Xcode6.1 SVN 出现问题 The operation couldn’t be completed. (NSURLErrorDomain error -1012.) 解决方法: 打开终端 ...

  10. BZOJ 1038 瞭望塔

    Description 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安.我们将H村抽象为一维的轮廓.如下图所示 我们可以用一条山的上方轮廓折线(x1, ...