因数是指整数 a 除以整数 b (b≠0) 的商正好是整数而没有余数,此时称 b 是 a 的因数。例如,6÷2 = 3,商是整数且没有余数,所以 2 是 6 的因数;同时,6÷3 = 2,所以 3 也6的因数;
因数的性质:1.任何整数都有因数 1 和它本身
2.因数是成对出现的:如果 a 能被 b 整除,即 a÷b = c(a、b、c 均为整数),那么 b 和 c 就是 a 的一对因数。以 24 为例,24÷2=12,2 和 12 是 24 的一对因数;24÷3=8,3 和 8 也是 24 的一对因数。
3.一个数的因数个数是有限的:一个数的因数是有限的,最小的因数是 1,最大的因数是它本身。比如 18 的因数有 1、2、3、6、9、18,共 6 个。
#include <stdio.h>
// 获取用户输入的正整数
int get_number()
{
int number = 0;
while (1)
{
printf("请输入一个大于0的数: ");
if ((scanf("%d", &number) == 1) && (number > 0))
{
printf("输入正确!\n");
return number;
}
else
{
printf("输入有误,请重新输入一个大于0的数。\n");
while (getchar() != '\n'); // 清空输入缓冲区
}
}
}
// 求一个整数的所有因数
void judge_factor(int number)
{
printf("%d 的所有因数为: ", number);
// 遍历从 1 到 number 的所有数
for (int i = 1; i <= number; i++)
{
// 如果 number 能被 i 整除,则 i 是 number 的因数
if (number % i == 0)
{
printf("%d ", i);
}
}
printf("\n");
}
int main()
{
int num = get_number(); // 获取用户输入
judge_factor(num); // 求所有因数
return 0;
}