Advertisement
agusbd

faktorisasi prima + fibonacy dalam 1 menu

Nov 18th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.30 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. //xagusart
  4. int fib(int);
  5. bool prime(int);
  6. int faktorisasi(int);
  7.  
  8. int main()
  9. {
  10.      char yn;
  11.      bool ketemu = true;
  12.      int menu,
  13.          angka,
  14.          posisi;
  15.      ulang :
  16.      cout<<"menu"<<endl;
  17.      cout<<"1.fibbonaci"<<endl;
  18.      cout<<"2.faktorisasi prima"<<endl;
  19.      cout<<"pilih : ";cin>>menu;
  20.      switch(menu)
  21.      {
  22.         case 1:
  23.         cout<<"masukan angka : ";
  24.         cin>>angka;
  25.         for(int i = 1;i<=angka;i++)
  26.         if(angka==fib(i))
  27.         {
  28.             posisi=i;
  29.             ketemu= false;
  30.             break;
  31.  
  32.         }
  33.  
  34.         if(ketemu)
  35.             {
  36.                 cout<<"angka yang dimasukan bukan fibonaci suku ke n"<<endl;
  37.  
  38.             }
  39.         else
  40.             {
  41.  
  42.                 cout<<"fibonacci ke "<< posisi <<" adalah :"<<fib(posisi)<<endl;
  43.                 for(int i = 1;i<=posisi;i++)
  44.                     {
  45.                         cout<<fib(i)<<"\t";
  46.  
  47.                     }
  48.                 cout<<endl;
  49.             }
  50.         cout<<"kembali ke menu utama ? <y/n>";cin>>yn;
  51.         if(yn=='y')
  52.         goto ulang;
  53.         break;
  54.  
  55.      case 2:
  56.         cout<<"masukan angka : ";cin>>angka;
  57.         faktorisasi(angka);
  58.         cout<<endl;
  59.         cout<<"kembali ke menu utama ? <y/n>";cin>>yn;
  60.         if(yn=='y')
  61.         goto ulang;
  62.         break;
  63.  
  64.     }
  65. }
  66.  
  67.  
  68. int fib(int x)
  69. {
  70.     if(x==1||x==2)
  71.         return 1;
  72.     return (fib(x-1)+fib(x-2));
  73. }
  74.  
  75. bool prime(int x)
  76. {
  77.     int bagi =0;
  78.     for(int i = 1; i<=x;i++)
  79.  
  80.     {
  81.         if(x%i==0)
  82.             bagi++;
  83.         if(bagi>2)
  84.             break;
  85.     }
  86.  
  87.     if(bagi>2)
  88.         return false;
  89.     else
  90.         return true;
  91.  
  92.  
  93. }
  94.  
  95.  
  96. int faktorisasi(int x)
  97. {
  98.     int jumlah,sisa;
  99.     if(sisa==1)
  100.     return 0;
  101.     sisa=x;
  102.     for(int i = 2; i<=x; i++)
  103.     {
  104.         jumlah=0;
  105.         if(prime(i))
  106.             {
  107.                  if(x%i==0)
  108.                 {
  109.                     while(sisa%i==0)
  110.                         {
  111.                             sisa=sisa/i;
  112.                             jumlah++;
  113.                         }
  114.                     cout<<i<<"^"<<jumlah;
  115.                     if(sisa>1)
  116.                     cout<<" x ";
  117.                 }
  118.             }
  119.       }
  120.  
  121.       return faktorisasi(sisa);
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement