Problem1062--质因子表示

1062: 质因子表示

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 49  Solved: 18
[Submit] [Status] [Web Board] [Creator:]

Description

每个数都可以表示成质因子相乘的形式,如: 
3=3 
6=2*3 
100=2*2*5*5 
给定一个n(2<=n<=30000),输出相应的质因子相乘表达式,表达式中不能出现空格及其它字符,表达式的最后不能出现乘号。

Input

一个数

Output

行,质因子相乘的形式

Sample Input

12

Sample Output

12=2*2*3

HINT

#include <iostream>
using namespace std;
int main()
{
int data;
int i;
cin>>data;
i=2;
cout<<data<<"=";
while(i<=data)
  {
  if(data%i==0) 
    {
    if(i<data) cout<<i<<"*";
   else   cout<<i;
data=data/i;
    }
   else i++;
  }

return 0;
}


下面的写法会超时 


#include <iostream>
 using namespace std;
 int main()
 {
  int data,i;
  cin>>data;
  i=2;
  printf("%d=",data);
  while(data>0)
  {
   if(data%i==0)
   {
   if(data/i==1)
    printf("%d",i);
   else
    printf("%d*",i);
  data=data/i;
   }
  
   else i++;
  }
 
  return 0;
 }


Source/Category


[Submit] [Status]