public class Solution { private bool Judge(int x) { if (x <= 1) { return false; } int bound = Convert.ToInt32(Math.Sqrt(x)); for (int i = 2; i <= bound; i++) { if (x % i == 0) { return false; } } return true; } //素数筛法 private List<int> init(int num) { var prime = new List<int>(); bool[] mark = new bool[num + 1]; for (int i = 1; i <= num; i++) { mark[i] = false; } for (int i = 2; i <= num; i++) { if (mark[i])//排除2,3,5 { continue; } prime.Add(i); for (int j = i * i; j < num + 1; j += i) { mark[j] = true; } } return prime; } public bool IsUgly(int num) { if (num <= 0) { return false; } if (num == 1) { return true; } if (num % 2 == 0) { return IsUgly(num / 2); } if (num % 3 == 0) { return IsUgly(num / 3); } if (num % 5 == 0) { return IsUgly(num / 5); } return false; } }
https://leetcode.com/problems/ugly-number/#/description
本题同剑指Offer49。