题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
- (1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。
- (2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
- (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
#include<stdio.h>
int main()
{
int i = 0;//用于输入一个数
scanf_s("%d", &i);
printf("%d = ", i);
for (int j = 2; j <= i ; j++)
{
while (i % j == 0)
{
printf("%d ", j);
i = i / j;
if (i != 1)
{
printf("* ");
}
}
}
return 0;
}
函数用法
#include<stdio.h>
void Resolve(int i)
{
for (int j = 2; j <= i; j++)
{
while (i % j == 0)
{
printf("%d ", j);
i = i / j;
if (i != 1)
{
printf("* ");
}
}
}
}
int main()
{
int i = 0;//用于输入一个数
scanf_s("%d", &i);
printf("%d = ", i);
Resolve(i);
return 0;
}