题目描述:
对1到100的整数进行因子分解,例如4 = 2*2;8 = 2*2*2;
解题思路:
先判断这个整数是否为素数:如果是素数,则输出这个数*1;
如果不是素数,则判断其是否能被2整除,如果可以被2整除,则输出其中一个因子2;然后对这个数除2求商;继续判断其是否能被2整除,如果不能,则将被除数+1;继续判断。
代码实现:
#include<stdio.h>
int main()
{
int i = 0, j = 0, m = 0, n = 0;
int count = 0;
for (i = 2; i <= 100; i++)
{
printf("%d=", i);
for (j = 2; j < i; j++)
{
if (i%j == 0)
{
m = 2;
n = i;
while (n > m) //从2开始找最小因子
{
if (n%m == 0)
{
printf("%d*", m);
n = n / m;
}
else
m++;
}
printf("%d\n", m);
break;
}
}
if (i == j)
{
printf("%d*1\n", i, 1);
}
}
return 0;
}
运行结果: