C语言实现 求[200,300]之间有奇数个不同因子的最大的整数(在计算因子个数时,包括该数本身)
时间: 2023-12-10 14:37:19 浏览: 30
实现思路:
1. 从200开始,逐个判断每个数是否在[200,300]之间;
2. 对于每个满足条件的数,求出其因子个数,判断是否为奇数个;
3. 记录下满足条件的数中最大的那个数。
代码实现如下:
```c
#include <stdio.h>
#include <math.h>
int count_factors(int n)
{
int count = 1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i == 0)
{
count++;
if(i != n/i) count++;
}
}
return count;
}
int main()
{
int max_num = -1;
for(int i=200;i<=300;i++)
{
if(count_factors(i) % 2 == 1)
{
if(max_num == -1 || i > max_num)
max_num = i;
}
}
if(max_num != -1)
printf("最大的整数是:%d\n", max_num);
else
printf("在[200,300]之间没有满足条件的整数。\n");
return 0;
}
```
输出结果为:
```
最大的整数是:289
```