永发信息网

谁能用C++帮我写个计算质因数个数的程序

答案:3  悬赏:50  手机版
解决时间 2021-11-26 21:37
  • 提问者网友:刺鸟
  • 2021-11-26 04:50
谁能用C++帮我写个计算质因数个数的程序
最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-11-26 05:48
//判断num是否为质数
bool IsPrimeNumber(unsigned int num)
{
if (num == 1)
return false;
unsigned int nMaxNum = num-1;
for(int n=2; n {
if ((num % n)==0)
return false;
nMaxNum = (num+n-1)/n;
}
return true;
}

//计算num的质因数个数
int CalcPrimeNumberCount(unsigned int num)
{
int nPrimeCount = 0;

unsigned int nMaxNum = num-1;
for(int n=2; n<=nMaxNum; n++)
{
if ((num % n) == 0)
{
if ( IsPrimeNumber(n) )
{
nPrimeCount++;
}
nMaxNum = (num+n-1) / n;
}
}

return nPrimeCount;
}

//主程序
int main(int argc, char* argv[])
{
int num = 9699690;
int nPrimeCount = CalcPrimeNumberCount(num);
printf("数字 %d 的质因数个数为 %d 个\n", num, nPrimeCount);
return 0;

}

我的代码结构清晰,容易看明白,执行效率高,刚测试过了
全部回答
  • 1楼网友:人類模型
  • 2021-11-26 06:38
我帮你写,等我几分钟,追问好的追答#include
#define MAX 1001
char a[MAX];
int main()
{
int i,j,sum=0;
for(i=2;i {
if(a[i]==0)
for(j=i+i; j a[j] = 1;
}
int n;
printf("Please enter a number:\n");
scanf("%d",&n);
for(i = 2; i <= n/2; i++)
{
if(a[i] == 0)
{
if(n % i == 0)
sum ++;
}
}
printf("%d\n",sum);
return 0;
}
不知道你看不看的懂
  • 2楼网友:行路难
  • 2021-11-26 06:13
#include "stdio.h"

main()
{
int n,i,m;
scanf("%d",&n);
m=n;
printf("%d=",n);
for(i=2; i{
while(m%i==0)
{
m=m/i;
printf("%d*",i);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯