关於c语言的质因数分解

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:36:48
有人可以详细说明这题吗?方法越简单越好

写一个 C 程式让使用者重复输入一正整数,显示它的质因数连乘积。
直到输入非正整数为止。

输入范例:
24
12
-1

输出范例:
24=2*2*2*3
12=2*2*3

最简单的方法用穷举法:
1、先穷举出它的因数
2、判断每个因数是否为质因数

#include <stdio.h>
#include <math.h>

int a[100];

int isPrime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}

int main()
{
int i,j,in;

while(scanf("%d",&in)&&in>-1)
{
if(in==0||in==1)
printf("没有质因数");
else
{
j=0;
printf("%d=",in);
while(in>3)
{
for(i=2;i<=in;i++)
{
if(isPrime(i)&&in%i==0)
break;
}
in=in/i;
a[j++]=i;
}
if(in>1)
a[j++]=in;
for(i=0;i<j;i++)
{
printf("%d",a[i]);
if(i<j-1)
printf("*");
}
printf("\n");
}
}

return 0;
}

#include <stdio.h>