博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
U - Relatives(欧拉函数)
阅读量:4322 次
发布时间:2019-06-06

本文共 1064 字,大约阅读时间需要 3 分钟。

Description

Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that a = xy and b = xz.

Input

There are several test cases. For each test case, standard input contains a line with n <= 1,000,000,000. A line containing 0 follows the last case.

Output

For each test case there should be single line of output answering the question posed above.

Sample Input

7
12
0

Sample Output

6
4

解题思路:欧拉函数:求不大于n且与n互质的数的个数。

AC代码:

1 #include
2 using namespace std; 3 int Euler(int x){ 4 int r=x; 5 for(int i=2;i*i<=x;i++){
//由于任何一个合数都至少有一个不大于根号x的质因子,所以只需遍历到根号x即可 6 if(x%i==0){ 7 r=r/i*(i-1);//欧拉函数的通式,先除后乘,避免数据溢出 8 while(x%i==0)x/=i;//消除x中所有质因子i,直到不能被i整除 9 }10 }11 if(x>1)r=r/x*(x-1);//如果x大于1,说明还有一个质因子没有除掉12 return r;//返回个数13 }14 int main(){15 int n;16 while(cin>>n&&n)17 cout<
<

 

转载于:https://www.cnblogs.com/acgoto/p/9317225.html

你可能感兴趣的文章
[Hive - LanguageManual] Alter Table/Partition/Column
查看>>
可持久化数组
查看>>
去除IDEA报黄色/灰色的重复代码的下划波浪线
查看>>
Linux发送qq、网易邮件服务配置
查看>>
几道面试题
查看>>
【转】使用 WebGL 进行 3D 开发,第 1 部分: WebGL 简介
查看>>
js用正则表达式控制价格输入
查看>>
chromium浏览器开发系列第三篇:chromium源码目录结构
查看>>
java开发操作系统内核:由实模式进入保护模式之32位寻址
查看>>
第五讲:单例模式
查看>>
Python编程语言的起源
查看>>
Azure ARMTemplate模板,VM扩展命令
查看>>
第三周作业
查看>>
浅谈模块化
查看>>
(转)arguments.callee移除AS3匿名函数的侦听
查看>>
onNewIntent调用时机
查看>>
MYSQL GTID使用运维介绍(转)
查看>>
学习新语言等技能的历程
查看>>
04代理,迭代器
查看>>
解决Nginx+PHP-FPM出现502(Bad Gateway)错误问题
查看>>