能够被给定值整除的数(即余数为 0)被称为给定数的因数。让我们看看如何使用 FOR 循环、WHILE 循环、指针和函数来编写一个 C 语言查找数字因数的程序。
使用 For 循环查找数字因数的 C 语言程序
此程序允许用户输入任何整数值。通过使用此值,此程序使用 For 循环查找数字的因数。
#include <stdio.h>
int main()
{
int i, Number;
printf("\n Please Enter any number to Find Factors \n");
scanf("%d", &Number);
printf("\n Factors of the Given Number are:\n");
for (i = 1; i <= Number; i++)
{
if(Number%i == 0)
{
printf(" %d ", i);
}
}
return 0;
}

在此查找数字因数的程序中,我们声明了两个整数变量 i 和 number。接下来,我们将整数 i 的值初始化为 1,并且 (i <= Number) 条件将有助于循环在条件失败时终止。
for (i = 1; i <= Number; i++)
{
if(Number%i == 0)
{
printf(" %d ", i);
}
}
在 for 循环 中,有一个 If 语句 来检查 Number 是否能被 i 整除且余数是否恰好等于 0。如果条件为 True,则打印 i 值,否则将跳过该特定值并为下一个值检查条件。用户在上面的 C 编程 示例中输入的整数是 4。
第一次迭代
i = 1 且 Number = 4 – 这意味着 (i <= Number) 为 True。
现在,检查 if 条件 – if (Number%i == 0)Number%i == 0 => (4%1 ==0) – 此条件为 TRUE。因此,打印 1。
i++ 表示 i 将变为 2。
程序查找数字的阶乘的第二次迭代。
i = 2, Number = 4 – 这意味着 (2 <= 4) 为 True。
if(Number%i == 0) = if(4%2 ==0) – 此条件为 TRUE。因此,打印 2。
第三次迭代
i = 3, Number = 4 – 这意味着 (3 <= 4) 为 True。
if(Number%i == 0) = if(3 % 2 ==0) – 此条件为 FALSE。因此,3 将被跳过。
第四次迭代
i = 4, Number = 4 – 这意味着 (4 <= 4) 为 True。
if (Number%i == 0) = if(4 % 4 ==0) – 此条件为 TRUE。因此,打印 4。
i++ 表示 i 将变为 5 – 这意味着 (5 <= 4) 为 False。因此,For 循环将终止。
4 的因数 = 1, 2, 4
使用 While 循环查找数字因数的 C 语言程序
此程序使用 While 循环查找数字的因数。
我们只是将上面示例中的 For 循环替换为 While 循环。如果您不理解 While 循环,请在此处参考 While 循环文章:WHILE 循环。
#include <stdio.h>
int main()
{
int Number, i = 1;
printf("\n Please Enter number to Find Factors\n");
scanf("%d", &Number);
printf("\n The Factors of a Number are:\n");
while (i <= Number)
{
if(Number%i == 0)
{
printf("%d ", i);
}
i++;
}
return 0;
}
输出
Please Enter number to Find Factors
125
The Factors of a Number are:
1 5 25 125
使用函数查找数字因数的 C 语言程序
此程序通过将用户输入的数值传递给 函数 来查找数字的因数。在此用户定义函数 程序 中,我们使用了 For 循环。
#include <stdio.h>
void Find_Factors(int);
int main()
{
int Number;
printf("\nPlease Enter number to Find Factors\n");
scanf("%d", &Number);
printf("\nFactors of a Number are:\n");
Find_Factors(Number);
return 0;
}
void Find_Factors(int Number)
{
int i;
for (i = 1; i <= Number; i++)
{
if(Number%i == 0)
{
printf("%d ", i);
}
}
}
Please Enter number to Find Factors
222
Factors of a Number are:
1 2 3 6 37 74 111 222
使用指针查找数字阶乘的 C 语言程序
此程序使用指针查找数字的因数。请在此示例之前参考 C 语言指针 文章。这将帮助您理解指针和指针变量的概念。
#include <stdio.h>
void Find_Factors(int *);
int main()
{
int Number, *P;
printf("\n Please Enter number to Find Factors\n");
scanf("%d", &Number);
P = &Number;
printf("\n Factors of a Number are:\n");
Find_Factors(P);
return 0;
}
void Find_Factors(int *Number)
{
int i;
for (i = 1; i <= *Number; i++)
{
if(*Number % i == 0)
{
printf("%d ", i);
}
}
}
Please Enter number to Find Factors
1589
Factors of a Number are:
1 7 227 1589
在此查找因数的程序中,我们将 Number 变量的地址分配给指针变量的地址。
P = &Number;
这里,P 是我们已经声明的指针变量 (*P) 的地址。我们都知道 &Number 是 Number 的地址。
在 For 循环中,我们将 i 值与指针变量 *Number 进行比较。这是因为 *Number 表示指针变量中的值而不是地址。