題目:統(tǒng)計所有小于非負整數(shù) n 的質(zhì)數(shù)的數(shù)量。
示例:
輸入: 10
輸出: 4
解釋: 小于 10 的質(zhì)數(shù)一共有 4 個, 它們是 2, 3, 5, 7 。
解題思路:
- 質(zhì)數(shù)是除1和他本身外不能有其他因數(shù),最小的質(zhì)數(shù)是2。
- 判斷因數(shù)時只要小于等于該數(shù)的平方根就可以了,避免超時。
代碼:
int countPrimes(int n){
int count = 0;
int i, j, flag;
for(i = 2; i < n; i++)
{
flag = 0;
for(j = 2; j <= sqrt(i); j++) //防止超時
{
if(i % j == 0)
{
flag = 1;
break;
}
}
if(flag == 0)
count ++;
}
return count;
}