LeetCode - Easy - 263. Ugly Number

Topic

  • Math

Description

https://leetcode.com/problems/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: [−2³¹, 2³¹ − 1].

Analysis

Submission

public class UglyNumber {
    
    

	public boolean isUgly(int num) {
    
    
		for (int i = 2; i < 6 && num > 0; i++)
			while (num % i == 0)
				num /= i;
		return num == 1;
	}

}

Test

import static org.junit.Assert.*;
import org.junit.Test;

public class UglyNumberTest {
    
    

	@Test
	public void test() {
    
    
		UglyNumber obj = new UglyNumber();

		assertTrue(obj.isUgly(6));
		assertTrue(obj.isUgly(8));
		assertFalse(obj.isUgly(14));
		assertFalse(obj.isUgly(-6));
	}
}

猜你喜欢

转载自blog.csdn.net/u011863024/article/details/112976174