一道C++编程题目求解

2025-01-08 09:31:50
推荐回答(1个)
回答1:

研究了一下 发现代码简化后 可不用判断质数的函数 效率可以更高 代码更简单  如下

供参考

#include 

int get_num(int a)
{
int ret = 0;
int i;
while(a!=1)
{
for(i = 2; i <= a; i ++)
{
if(a%i) continue;
ret ++;
a/=i;
break;
}
}
return ret;
}

int main()
{
int a;
int i;
int cnt[2]={0};

scanf("%d", &a);
for(i = 2; i <= a; i ++)
{
cnt[get_num(i)%2]++;
}
printf("质因子奇数个数为%d, 偶数个数为%d\n", cnt[1], cnt[0]);
return 0;
}