Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- //xagusart
- int fib(int);
- bool prime(int);
- int faktorisasi(int);
- int main()
- {
- char yn;
- bool ketemu = true;
- int menu,
- angka,
- posisi;
- ulang :
- cout<<"menu"<<endl;
- cout<<"1.fibbonaci"<<endl;
- cout<<"2.faktorisasi prima"<<endl;
- cout<<"pilih : ";cin>>menu;
- switch(menu)
- {
- case 1:
- cout<<"masukan angka : ";
- cin>>angka;
- for(int i = 1;i<=angka;i++)
- if(angka==fib(i))
- {
- posisi=i;
- ketemu= false;
- break;
- }
- if(ketemu)
- {
- cout<<"angka yang dimasukan bukan fibonaci suku ke n"<<endl;
- }
- else
- {
- cout<<"fibonacci ke "<< posisi <<" adalah :"<<fib(posisi)<<endl;
- for(int i = 1;i<=posisi;i++)
- {
- cout<<fib(i)<<"\t";
- }
- cout<<endl;
- }
- cout<<"kembali ke menu utama ? <y/n>";cin>>yn;
- if(yn=='y')
- goto ulang;
- break;
- case 2:
- cout<<"masukan angka : ";cin>>angka;
- faktorisasi(angka);
- cout<<endl;
- cout<<"kembali ke menu utama ? <y/n>";cin>>yn;
- if(yn=='y')
- goto ulang;
- break;
- }
- }
- int fib(int x)
- {
- if(x==1||x==2)
- return 1;
- return (fib(x-1)+fib(x-2));
- }
- bool prime(int x)
- {
- int bagi =0;
- for(int i = 1; i<=x;i++)
- {
- if(x%i==0)
- bagi++;
- if(bagi>2)
- break;
- }
- if(bagi>2)
- return false;
- else
- return true;
- }
- int faktorisasi(int x)
- {
- int jumlah,sisa;
- if(sisa==1)
- return 0;
- sisa=x;
- for(int i = 2; i<=x; i++)
- {
- jumlah=0;
- if(prime(i))
- {
- if(x%i==0)
- {
- while(sisa%i==0)
- {
- sisa=sisa/i;
- jumlah++;
- }
- cout<<i<<"^"<<jumlah;
- if(sisa>1)
- cout<<" x ";
- }
- }
- }
- return faktorisasi(sisa);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement