描述
将一个正整数分解质因数,例如:输入90,打印出90=2*3*3*5。
输入
一个正整数n
输出
分解质因数后的表达式
分析
1.先找出第一个因数
2.判断其是否为质数,为质数则输出,并让原数除以该质数,否则找下一个因数
3.重复上述操作
代码
#include <stdio.h>
#include <math.h>
int main()
{
int n;
scanf("%d", &n);
int i = 0, j = 0;
int t = 0;//用于判断是否要加‘*’,t=0即第一个质因数前不加
printf("%d = ", n);
i = 2;//每一次判断因数都从2开始判断
while(n != 1)
{
if (n % i == 0)//找到因数
{
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)//判断是否为质数,不是则跳出循环
break;
}
if (j > sqrt(i))//成立说明之前没有跳出循环,即是质因数
{
if (t > 0)//第一个质因数前不加‘*’
{
printf("*");
}
printf("%d", i);
n /= i;
t += 1;
i = 1;//每一次判断因数都从2开始判断,因为最后还有i++.所以i=1
}
}
i++;
}
return 0;
}
测试结果