Leetcode ☞ 263. Ugly Number ☆ 【附求质数 prime number 最大公约gcd 最小公倍lcm】
来源:互联网 发布:mac本取消开机密码 编辑:程序博客网 时间:2024/06/09 23:40
Total Accepted: 44350 Total Submissions: 123594 Difficulty: Easy
Write a program to check whether a given number is an ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 6, 8
are ugly while 14
is not ugly since it includes another prime factor 7
.
Note that 1
is typically treated as an ugly number.
我的AC:
<span style="font-size:18px;">bool isUgly(int num) { if (num < 1) return false; for(int i = 2 ; i <= 5 ; i++){ while(num % i == 0) num /= i; } if (num == 1) return true; else return false;}</span>
分析:
将数依次除以2、3、5,除到不能整除为止,如果商不为1,说明有别的因子。
附求素数算法:
判断一个数num是否是素数,只要让num被2~根num之间的数除,如果不能被2~根num中的任何一个数整除,则num为素数。
【为何只需循环到根num? 其实想一想就明白了。 这个问题的答案又有点跟 Leetcode ☞ 319. Bulb Switcher ☆ 类似了】
bool isPrime(int num) { int k = sqrt(num); if (num == 2 || num == 3) return true; for(int i = 2 ; i <= k ; i++){ if (num % i == 0) return false;//不是素数 } return true;}
由素数又想到了 最小公倍数Lowest Common Multiple 最大公约数Greatest Common Divisor..
最小公倍数 = 两整数的乘积 ÷ 最大公约数,所以统一为求最大公约。
方法:辗转相除
非递归:
<span style="font-size:18px;">//最大公约数,非递归,辗转相除(先让a为大数再循环;把b赋给a,把余数赋给b;循环到b=0为止,)。int gcd(int a, int b){int tmp;if(a < b){a = a ^ b;b = b ^ a;a = a ^ b;}while(b){tmp = a % b;a = b;b = tmp;}return a;}</span>
递归:
<span style="font-size:18px;">//递归,ab谁大谁小无所谓。【如果a<b,第一轮就会相交换】int gcd(int a,int b){ return a % b ? gcd(b, a % b) : b;// 或者 b ? gcd(b, a % b) : a;}</span>
0 0
- Leetcode ☞ 263. Ugly Number ☆ 【附求质数 prime number 最大公约gcd 最小公倍lcm】
- HD1108 求最小公倍(先求最大公约)
- 每日一篇:求最大公约和最小公倍
- HDOJ1019最大公约与最小公倍
- 最大公约与最小公倍
- 1063: 最大公约与最小公倍
- [leetcode] 263.Ugly Number
- 263. Ugly Number LeetCode
- [LeetCode]263. Ugly Number
- leetcode 263. Ugly Number
- Leetcode 263. Ugly Number
- LeetCode *** 263. Ugly Number
- [leetcode] 263. Ugly Number
- leetcode 263. Ugly Number
- LeetCode 263. Ugly Number
- #leetcode#263.Ugly Number
- LeetCode 263. Ugly Number
- 263.[LeetCode]Ugly Number
- AngularJS内置指令示例——表单验证
- shell 初始化linux系统脚本
- ListView通过OnScrollListener判断第一项数据或最后一项数据处于可视状态
- android:数据篇-SharedPreference
- 基于ICM的图像切割 MATLAB
- Leetcode ☞ 263. Ugly Number ☆ 【附求质数 prime number 最大公约gcd 最小公倍lcm】
- Specified VM install not found: type Standard VM, name jre7
- 常见的Git代码托管平台有哪些
- 2014第五届蓝桥杯C++B组第七题
- 利用Python requests库模拟登陆学校教务系统
- 安卓开发——TextView属性
- 用http的方式调用webservice,另,用axis调用
- Oracle数据库数据迁移到MySQL数据库之序列问题解决办法
- PowerDesigner(PD) 数据表导出EXCLE