用c语言写出输入若干个正整数,以-1表示结束,输出这些整数中约数最多的的整数及其约数个数,两者之间用一个空格隔开。数量相同,输出后输入的整数。要求子函数getCount 实现计算一个正整数的约数个数
时间: 2024-11-27 22:22:04 浏览: 1
求两个正整数的最大公约数。-c语言程序设计课件
在C语言中,你可以按照以下步骤编写程序来满足这个需求:
```c
#include <stdio.h>
// 函数声明,用于计算一个正整数的约数个数
int getCount(int num);
// 主函数,接收用户输入并处理结果
int main() {
int num, max_count = 0, max_num = -1;
// 循环读取输入直到遇到-1
while (scanf("%d", &num) == 1 && num != -1) {
int count = getCount(num);
// 如果当前数字的约数个数更多,更新最大值和计数器
if (count > max_count) {
max_count = count;
max_num = num;
}
}
// 输出结果
if (max_num != -1) {
printf("%d %d\n", max_num, max_count);
} else {
printf("No numbers entered or all have the same count.\n");
}
return 0;
}
// 计算一个正整数的约数个数的子函数
int getCount(int num) {
int count = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
count++;
}
}
// 包含1和自身也是约数,所以加1
count += 2;
return count;
}
```
在这个程序中,`getCount`函数用于计算给定整数的约数个数,主函数则负责循环读取用户输入、存储约数最多的数及其个数,并在所有输入结束后输出结果。
阅读全文