7-138 质因子分解 (10分)

7-138 质因子分解 (10分)
 

本题目要求读入一个大于1的整数,编程将其分解成若干个质因子(素数因子)积的形式。

输入格式:

大于1的整数一个。

输出格式:

将输入的正整数分解成若干个质因子积的形式,质因子的出现顺序按从小到大排列。如:30=2*2*2*5;如果整数本身为质数或素数,直接输出,如:13=13。

输入样例:

12480
 

输出样例:

12480=2*2*2*2*2*2*3*5*13




#include<stdio.h>
#include<math.h>
int prime(int n)
{
 int i;
 if(n<2)
 return 0;
 for(i=2;i<=sqrt(n);i++)
 {
  if(n%i==0)
  return 0;
 }
 return 1;
 
}
int main()
{
 int n;
 scanf("%d",&n);
 int i;
 int j;
 int flag=0;
 int k;
 k=n/2;
 if(prime(n))
 {
 printf("%d=%d\n",n,n);
 return 0;
}
  printf("%d=",n);
 for(i=2;i<=k;i++)
 {
  if(n%i==0)
  {
 
  
  while(n%i==0)
  {
   if(flag==0)
   {
   printf("%d",i);
   flag++;
  }
    else
   printf("*%d",i);
   n=n/i;
  }
     }
  
 }
 
 return 0;
}

posted @ 2020-10-17 23:43  罪梦者  阅读(597)  评论(0)    收藏  举报