用C语言编写这样一个小程序:随便输入一个正整数,找出它的质因数,并输出这些质因数相乘的形式。

C 语言哦!例如90=2*3*3*5
2025-02-28 14:19:54
推荐回答(6个)
回答1:

// strfile.cpp -- read strings from a file
#include "stdio.h"

void main()
{
int a=256;//要分解的数

printf("%d=",a);

for(int i=2;;i++)
{
if(a%i==0)
{
if(a/i==1)
{
printf("%d",i);
printf("\n");
return;
}
else
{
a=a/i;
printf("%d*",i);
i=i-1;
}
}
}
}

回答2:

#include

void main()
{
int i,j,n,p[200],t;
scanf("%d",&n);
t=n;
for(j=0;;j++)
{
for(i=2;i<=n;i++)
if(n%i==0)
{
p[j]=i;
n=n/i;
i=2;
break;
}
if(n==1)break;
}
printf("%d=",t);
for(i=0;i<=j;i++)
printf("%d*",p[i]);
printf("\b");
}

回答3:

#include
#include

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

int main(){
int n,i;
printf("Please input the number: ");
scanf("%d",&n);
printf("%d=",n);
for(i=2;;i++){
if(IsPrimeNum(n)==0){
printf("%d\n",n);
break;
}
if(n%i==0){
if(IsPrimeNum(i)==0)
printf("%d*",i);
n=n/i;
i=2;
}
}
return 0;
}

hanwt139的回答很强悍,学习了

回答4:

#include

void main()
{
int prime[200];
int amount[200];
int n,m;
int i,j;

prime[0] = 2;
amount[0] = 0;
printf("输入一个正整数\n");
scanf("%d",&n);
m = n;
if (m==1)
{
printf("1=1");
return;
}
for (i=0; n>1; i++)
{
while (n%prime[i]!=0)
prime[i]++;
for (amount[i] = 0; n%prime[i]==0; n/=prime[i])
amount[i]++;
prime[i+1] = prime[i] + 1;
}
i--;
printf("%d=",m);

printf("%d",prime[0]);
amount[0]--;

for (j=0; j<=i; j++)
{
while (amount[j]>0)
{
printf("*%d",prime[j]);
amount[j]--;
}
}
printf("\n");
}

回答5:

#include "stdio.h"

main()
{
int n,i,m;
scanf("%d",&n);
m=n;
printf("%d=",n);
for(i=2; i{
while(m%i==0)
{
m=m/i;
printf("%d*",i);
}
}
printf("\b ");/*去掉最后一个*号*/
getch();
}
只能从2以上才行,1不行。:(

回答6:

给10分少了点,加点分吧~