Kamis, 07 Juli 2011

Program menghitung faktor prima

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

class faktor_prima{
      /*friend istream& operator>>(istream&, faktor_prima&);
      friend ostream& operator<<(ostream&, faktor_prima&);*/
     
      public:
             faktor_prima();
             void masuk();
             void beri_nilai();
             void hitung();
             void keluar();
            
      private:
              int n;
              int r;
              int q;
              int i;
              double a;
              //int d[100];
              int f[100];
              int prime;
     
      };
     
faktor_prima::faktor_prima(){
       cout<<"Menghitung faktor prima dari bilangan bulat\n\n";
                             }
                            
/*istream& operator>>(istream& in, faktor_prima& masuk){
         cout<<"Masukkan bilangan bulat positif : ";
         in>>masuk.n;
         return in;
         }
        
ostream& operator<<(ostream& out, faktor_prima keluar){
         out<<"faktor prima dari "<<keluar.n<<" : ";
         for(int x=1;x<=i;x++){
                 out<<f[i]<<" , ";
                 return out;
                 }
         return out;
         }*/
        
void faktor_prima::masuk(){
     cout<<"Masukkan bilangan bulat positif : ";
     cin>>n;
     cout<<endl;
     }

void faktor_prima::beri_nilai(){
     i = 0;
     prime = 2;
     }
        
void faktor_prima::hitung(){
     a = sqrt(n);
     q = n / prime;
     r = n % prime;
    
     while (r = 0 || q > prime){
             if(r = 0){
                  i = i + 1;
                  f[i] = prime;
                  n = q;
                  }
             else {
                  q = n / prime;
                  r = n % prime;
                  }
                  };
    
            
     if(n > 1){
          i = i + 1;
          f[i] = n;
          }
         
     }
    
void faktor_prima::keluar(){
     cout<<"faktor prima dari "<<n<<" : ";
         for(int x=1;x<=i;x++){
                 cout<<"("<<f[x]<<") ";
                 }
     cout<<endl<<endl;
     }    
     
int main(int argc, char *argv[])
{
    faktor_prima dyas;
   
    peni.masuk();
    peni.beri_nilai();
    peni.hitung();
    peni.keluar();
   
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar