质因数个数
int PrimeCount(int n)
{
int cnt=0;
int prime;
while(n%2==0)
{
cnt++;
n/=2;
}
for(prime=3;prime<=n;prime+=2)
{
while(n!=1)
{
if(n%prime==0)
{
cnt++;
n=n/prime;
}
else
break;
}
}
return cnt;
}
判断小于n共有几个质数(埃拉托色尼筛)
int countPrimes(int n)
{
vector<bool> isPrime(n,true);
int cnt=0;
for(int i=2;(long long)i*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])
cnt++;
}
return cnt;
}
本文介绍两种算法:一是通过迭代方法计算一个整数的所有质因数的数量;二是利用埃拉托色尼筛法计算小于指定数值的所有质数数量。这两种算法为理解和实现数论中关于质数的操作提供了基础。
522

被折叠的 条评论
为什么被折叠?



