求一个分解339331789的C程序?

来源:百度知道 编辑:UC知道 时间:2024/06/05 00:48:36
C语言
分解质因数
求出其因子

楼上的else里面的i=2是多此一举,且导致效率变低
循环条件也不必是i<n,改为i<=sqrt(n),将提高很多效率
输入放在while的条件中,如果要退出,输入任意非数字即可
#include<stdio.h>
#include"math.h"
void main()
{
unsigned long i,n;
while(printf("Please input a number: \n")&&scanf("%ld",&n))
{
printf("%ld=",n);
for(i=2;i<=sqrt(n);)
{
if(n%i)
{
i++;
}
else
{
printf("%ld*",i);
n=n/i;
}
}
printf("%ld\n\n",n);
}
}

这样就可以了

#include<stdio.h>

int main()
{
long i,n;
printf("\n Please input a number: ");
scanf("%ld",&n);
printf("%ld=",n);
for(i=2;i<n;){
if(n%i!=0){
i++;
}
else{
printf("%ld*",i);
n=n/i;
i=2;
}
}
printf("%ld",i);