document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5. int main() {
  6.     int n;
  7.    
  8.     int prime[100000]={-1,-1,0};
  9.     for(int i=2;i<100000;i++){
  10.         if(prime[i]==0){
  11.             prime[i]=1;
  12.             for(int j=i+i;j<100000;j+=i){
  13.                 prime[j]=-1;
  14.             }
  15.         }
  16.     }
  17.  
  18.     while(cin>>n && n!=0){
  19.         cout<<n<<" = ";
  20.         if(n==-1){
  21.             cout<<"-1"<<endl;
  22.             continue;
  23.         }
  24.         else if(n<-1){
  25.             cout<<"-1 x ";
  26.             n=-n;
  27.         }
  28.         else if(n==1){
  29.             cout<<"1"<<endl;
  30.             continue;
  31.         }
  32.  
  33.         int temp=n;
  34.         bool isPrime = true;
  35.         bool isFirstFactor = true;
  36.         int sqrtOfN = (double)sqrt((double)n);
  37.         for(int num = 2; num<= sqrtOfN && temp!=1 ;num++){
  38.             if(prime[num]!=1){
  39.                 continue;
  40.             }
  41.             int factor = num;
  42.             while(temp%factor==0){
  43.                 if(isFirstFactor){
  44.                     isFirstFactor=false;
  45.                     cout<<factor;
  46.                     temp/=factor;
  47.                     isPrime = false;
  48.                     continue;
  49.                 }
  50.                 cout<<" x "<<factor;
  51.                 temp/=factor;
  52.                 isPrime = false;
  53.             }
  54.         }
  55.         if(isPrime){ cout<<n<<endl; }
  56.         else if(temp>1){ cout<<" x "<<temp<<endl;}
  57.         else{ cout<<endl;}
  58.     }
  59.  
  60.     return 0;
  61. }
');