写出优化C++如何求一个数的所有因数的具体代码
时间: 2024-04-30 16:23:32 浏览: 53
6_7.rar_c++写百马百担
优化C代码如下:
```c
#include <stdio.h>
#include <math.h>
void print_factors(int num)
{
int i = 1;
int limit = sqrt(num);
for (i = 1; i <= limit; i++)
{
if (num % i == 0)
{
printf("%d ", i);
if (i != num / i)
{
printf("%d ", num / i);
}
}
}
}
int main()
{
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("%d的因数有:", num);
print_factors(num);
return 0;
}
```
该代码使用了sqrt函数来计算限制因子循环的上限,同时避免了重复计算因子。在循环中,只有当i是num的因子时,才会打印i和num / i。
阅读全文