首页 > 技术文章 > leetcode263

asenyang 2017-04-20 09:06 原文

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

推荐阅读