Advertisement
Miketo_prog

Factorial fibonacci

Jun 9th, 2020 (edited)
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void fibonacci(int, long long int []);
  5. long long int factorial(const int);
  6. bool esPrimo(const int);
  7.  
  8. int main()
  9. {
  10.     int cant, tam=30;
  11.    
  12.     //Si el num solicitado es menor o igual que 1
  13.    do{
  14.          cout << "Cuántos números fibonacci quieres?"<<endl;
  15.          cin>>cant;
  16.    }while(cant<=1);
  17.    
  18.    long long int fibs[cant];
  19.    
  20.    fibonacci(cant, fibs);
  21.    
  22.    cout<<"\n\n";
  23.    
  24.    for(int i=cant-1; i>=0; i--)
  25.     if( esPrimo(fibs[i]) )
  26.         cout<<"El factorial de "<<fibs[i]<<" es "<<factorial(fibs[i])<<endl;
  27.    
  28.    
  29.     return 0;
  30. }
  31.  
  32.  
  33. void fibonacci(const int elem, long long int arr[]){
  34.     int fibo1, fibo2;
  35.    
  36.     fibo1=1;
  37.     fibo2=1;
  38.    
  39.     arr[0]=fibo1;
  40.     for(int i=2; i<=elem; i++){
  41.         arr[i-1]=fibo2;
  42.         fibo2 = fibo1 + fibo2;
  43.         fibo1 = fibo2 - fibo1;
  44.     }
  45.    
  46. }
  47.  
  48.  
  49. long long int factorial(const int numero){
  50.     long long int acum=1;
  51.     int num=numero;
  52.    
  53.     (num<0)?(num*=-1):num;
  54.    
  55.     if( num==0 )
  56.         return 1;
  57.    
  58.     for(int i=1; i<=num; i++)
  59.         acum *= i;
  60.    
  61.     return acum;
  62. }
  63.  
  64.  
  65. bool esPrimo(const int num){
  66.     if( num<0 )
  67.         return 0;
  68.        
  69.     for(int i=2; i<=(num/2); i++)
  70.         if( num%i==0 )
  71.             return 0;
  72.            
  73.     return 1;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement