[Swift]LeetCode263. 丑数 | Ugly Number

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.

Example 1:

Input: 6
Output: true
Explanation: 6 = 2 × 3

Example 2:

Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2

Example 3:

Input: 14
Output: false
Explanation: 14 is not ugly since it includes another prime factor 7.

Note:

  1. 1 is typically treated as an ugly number.
  2. Input is within the 32-bit signed integer range: [−231,  231 − 1].

编写一个程序判断给定的数是否为丑数。

丑数就是只包含质因数 2, 3, 5 的正整数。

示例 1:

输入: 6
输出: true
解释: 6 = 2 × 3

示例 2:

输入: 8
输出: true
解释: 8 = 2 × 2 × 2

示例 3:

输入: 14
输出: false
解释: 14 不是丑数,因为它包含了另外一个质因数 7

说明:

  1. 1 是丑数。
  2. 输入不会超过 32 位有符号整数的范围: [−231,  231 − 1]。


20ms

 1 class Solution {
 2     func isUgly(_ num: Int) -> Bool {
 3         if num < 1 {return false}
 4         var number:Int = num
 5         while (number % 2 == 0)
 6         {
 7             number /= 2
 8         }
 9         while (number % 3 == 0)
10         {
11             number /= 3
12         }
13         while (number % 5 == 0)
14         {
15             number /= 5
16         }
17         return number == 1
18     }
19 }


16ms

 1 class Solution {
 2     func maxDiv(_ num: inout Int, _ div: Int) {
 3         while (num % div == 0) {
 4             num = num/div
 5         }
 6     }
 7
 8     func isUgly(_ num: Int) -> Bool {
 9         if(num == 0) {
10             return false
11         }
12         var no = num
13         maxDiv(&no, 2)
14         maxDiv(&no, 3)
15         maxDiv(&no, 5)
16
17         if(no == 1){
18             return true
19         }
20         else {
21             return false
22         }
23
24     }
25 }


20ms

 1 class Solution {
 2     func isUgly(_ num: Int) -> Bool {
 3         guard num > 0 else {return false}
 4         var n = num
 5
 6         let divs = [2, 3, 5]
 7         for d in divs {
 8             while n % d == 0 {
 9                 n /= d
10             }
11         }
12         return n == 1
13     }
14 }

原文地址:https://www.cnblogs.com/strengthen/p/9751111.html

时间: 2024-10-08 02:31:22

[Swift]LeetCode263. 丑数 | Ugly Number的相关文章

[Swift]LeetCode264.丑数 II | Ugly Number II

Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example: Input: n = 10 Output: 12 Explanation: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers. Note

Uva 136-丑数 ugly number

题目描述: Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... shows the first 11 ugly numbers. By convention, 1 is included. Write a program to find and print the 1500'th ugly number. Inpu

两种方法求丑数

我们把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 方法1 : 暴力破解,逐个判断 代码: <pre name="code" class="cpp">#include <iostream> #include <vector> using namespace std; //判断是否是丑数 bool isUgly(int index){ while(index % 2

【面试题034】丑数

[面试题034]丑数 题目: 我们把只包含因子2.3和5的数称为丑数(Ugly Number). 求按从小到大的顺序的第1500个丑数. 例如6.8都是丑数,但14不是,因为他包含因子7.习惯上我们把1当做第一个丑数. 思路一: 逐个的判断,效率不高. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647   #include <iostream>using namespace

算法分析---寻找丑数

什么是丑数: 一个数的因子仅仅包括2,3,5的数称为丑数.数字1特别对待也看作是丑数,所以从1開始的10个丑数分别为1,2.3.4,5,6,8,9.10.12. 因子的概念: 整数m除以n,得到无余数的商,则称n是m的一个因子.如8的因子有1.2.4.8.而丑数要求的因子仅仅包括2.3.5.所以丑数中的因子应理解为质因子. 即因子为质数.质数又称素数,指一个大于1的自然数.除了1和它自身外,不能被其它自然数整除的数. 与质数相相应的数称为合数. 如今要求写一个程序,输出从1開始的第N个丑数. 如

263. Ugly Number(C++)

263. Ugly Number 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.

37.寻找丑数

http://zhedahht.blog.163.com/blog/static/2541117420094245366965/ http://www.cppblog.com/zenliang/articles/131094.html http://www.cnblogs.com/coser/archive/2011/03/07/1976525.html 题目:我们把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做是

《剑指offer》第四十九题(丑数)

// 面试题49:丑数 // 题目:我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到 // 大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因为它包含因子7. // 习惯上我们把1当做第一个丑数. #include <iostream> // ====================算法1的代码==================== //不用额外的内存,直接计算 bool IsUgly(int number)//判断是不是丑数 { while (num

POJ1338——丑数

问题 丑数是仅有素因子2.3和5的整数.序列1,2,3,4,5,6,8,9,10,12是前十个丑数.1被包含在丑数中. 输入 给出一个正整数n(n<=1500) 输入0表示结束 输出 对于输入的每一行,输出第n个丑数 分析 预先算出第1-1500个丑数存入数组中,从小到大排列,然后取出第n个输出即可. 由于丑数仅有2.3.5这三个因子,所以集合中的元素都是通过乘以2.3.5这三个因子扩展获得的. 比如: ugly[1] =1 ugly[2]=2 ,用第1个丑数 ugly[1]分别以从小到大的顺序