LeetCode 204. 计数质数(质数的倍数不是质数)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 204. 计数质数(质数的倍数不是质数)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
統(tǒng)計(jì)所有小于非負(fù)整數(shù) n 的質(zhì)數(shù)的數(shù)量。
示例:輸入: 10 輸出: 4 解釋: 小于 10 的質(zhì)數(shù)一共有 4 個(gè), 它們是 2, 3, 5, 7 。2. 填表解題
- 2的倍數(shù)不是質(zhì)數(shù)
- 3的倍數(shù)不是質(zhì)數(shù)
- 5的倍數(shù),7的倍數(shù),11的倍數(shù)。。。質(zhì)數(shù)的倍數(shù)不是質(zhì)數(shù)
優(yōu)化雙重循環(huán)的范圍,減少重復(fù)
class Solution { public:int countPrimes(int n) {if(n <= 2)return 0;bool isTrue[n];memset(isTrue,true,n*sizeof(bool));int count = 0;for(int i = 2; i < sqrt(n); ++i){if(isTrue[i])for(int j = i*i; j < n; j = j+i)isTrue[j] = false;}for(int i = 2; i < n; ++i)if(isTrue[i])count++;return count;} };https://www.lintcode.com/problem/find-prime 也有題目可以做
輸出n以內(nèi)所有的素?cái)?shù)
class Solution { public:/*** @param n: an integer* @return: return all prime numbers within n.*/vector<int> prime(int n) {// write your code herevector<int> ans;vector<bool> isprime(n+1, true);for(int i = 2; i <= n; ++i){if(isprime[i]){for(int j = i*i; j <= n; j += i)isprime[j] = false;}}for(int i = 2; i <= n; ++i)if(isprime[i])ans.push_back(i);return ans;} };總結(jié)
以上是生活随笔為你收集整理的LeetCode 204. 计数质数(质数的倍数不是质数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员面试金典 - 面试题 04.04.
- 下一篇: LeetCode 82. 删除排序链表中