isUgly-丑数

2024-03-14 08:48
文章标签 丑数 isugly

本文主要是介绍isUgly-丑数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。

丑数 就是只包含质因数 2、3 和/或 5 的正整数。

示例 1:

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

示例 2:

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

示例 3:

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

示例 4:

输入:n = 1
输出:true
解释:1 通常被视为丑数。

提示:

-231 <= n <= 231 - 1

Related Topics 数学

解题思路

1.根据提示丑数 就是只包含质因数 2、3 和/或 5 的正整数。
2.所以我们从2作为因子判断,如果没有2则用3作为因子判断,如果3也不是就判断5,如果有其中一个就跳到步骤3,没有直接返回false;
3.如果一个是已知因子的话,就重复步骤2的操作
4.判断丑数的最终条件,就是是否为1,以及步骤3得到最后的数是否是5,3,2这其中的一个

代码

class Solution {public boolean isUgly(int n) {if(n==0)return false;if(n==1||(n==2)||(n==3)||(n==5))return true;if(n%2==0)return isUgly(n/2);else if(n%3==0)return isUgly(n/3);else if(n%5==0)return isUgly(n/5);return false;}
}

效果

info
解答成功:
执行耗时:1 ms,击败了100.00% 的Java用户
内存消耗:35.3 MB,击败了90.35% 的Java用户

这篇关于isUgly-丑数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/807869

相关文章

leetcode 263:丑数

bool isUgly(int num) {if(num<=0)return false;std::vector<int> a;if(num<7)return true;while(num!=1){if(num%5==0){num=num/5;}else if(num%3==0){num=num/3;}else if(num%2==0){num=num/2;}elsereturn false;

leetcode 264:丑数 II

我们需要做的是找到2乘某个数 或3乘某个数  或5乘某个数中的最小数刚好大于末尾的数字。t2,t3,t5分别表示乘以2 乘以3 乘以5 最小结果的下标,每次找三者之中的最小值,相应的t加一  如果有多个最小值,多个相应的t均加1 int nthUglyNumber(int n) {std::vector<int> a;if(n<7)return n;for(int i=0;i<6;i++)

Humble Numbers 丑数

http://acm.hdu.edu.cn/showproblem.php?pid=1058 很多人都说这道题是水题,但对于我来说还是很有用的,它教会我在处理这种问题的时候为了节省时间我们可以先把所有的满足范围的丑数找出来,再进行下面的操作。和去年吉林省省赛那道素数题相似。 #include<iostream>#include<cstring>#include<algorithm>#in

码农小汪-剑指Offer之31 -丑数

题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 解题思路如下: 因子中仅仅包含2、3、5的数,称为丑数。比如说14,就不是丑数,因为因子包含7。 请输出所有丑数中的第n个丑数。 第一个是基本的思路。写一个函数判断一个数字n是不是丑数。 那么可能会

剑指offer(C++)--丑数

题目 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 通俗易懂的解释: 首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,那么

263.丑数

丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:n = 6输出:true解释:6 = 2 × 3 示例 2: 输入:n = 1输出:true解释:1 没有质因数,因此它的全部质因数是 {2, 3, 5} 的空集。习惯上将其视作第一个丑数。 示例 3: 输入

丑数(UVa 136)

丑数是指不能被2,3,5以外的其他素数整除的数。把丑数从小到大排列起来,结果如下: 1,2,3,4,5,6,8,9,10,12,... 求第1500个丑数 【分析】 从小到大生成各个丑数。最小的丑数是1,而对于任意的丑数x,2x,3x和5x也都是丑数。这样,就可以用一个优先队列保存所有已生成的丑数,每次取出最小的丑数,生成3个新的丑数。需要注意的是,同一个丑数有多种生成方式,所以需要判断一

数学题目系列(一)|丑数|各位和|埃氏筛|欧拉筛

一.丑数 链接:丑数 分析: 丑数只有2,3,5这三个质因数,num = 2a + 3b + 5c也就是一个丑数是由若干个2,3,5组成,那么丑数除以这若干个数字最后一定变为1 代码 class Solution {public boolean isUgly(int n) {if (n <= 0) return false;int[] factors = { 2, 3, 5 };for

丑数(数论)

Description 丑数就是这个数的质因子只有2,3,5,7这四个,除此之外不再含有其它别的质因子。注意1也被认为是丑数.丑数的前20个为1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... ; Input 每行输入一个N,1 <= N <= 5842,N为0时输入结束. Outp

力扣 264. 丑数 II python AC

堆 from heapq import heappop, heappushclass Solution:def nthUglyNumber(self, n):q = [1]vis = {1}for _ in range(n - 1):now = heappop(q)for i in [2, 3, 5]:if now * i not in vis:vis.add(now * i)heappush(