Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. /*Дільники - Фібоначчі
  2. Відправити розв'язок
  3. Мої відправки
  4. Всі відправки
  5. Кращі відправки
  6.  
  7. Бали:5
  8. Time limit:1.0s
  9. Memory limit:64M
  10. Author:
  11. zvit
  12.  
  13. Problem type
  14.  
  15. Знайти всі дільники числа N, які є числами Фібоначчі.
  16.  
  17. Формат вихідних даних
  18. У вхідному потоці дано N (N<106).
  19.  
  20. Формат вихідних даних
  21. У вихідний потік через пропуск вивести дільники у порядку зростання.
  22.  
  23. Приклад вхідних даних
  24. Copy
  25. 10
  26. Приклад вихідних даних
  27. Copy
  28. 1 2 5
  29. */
  30. #include <iostream>
  31. #include <vector>
  32. using namespace std;
  33. vector<long long> fb(1);
  34. int k=2;
  35.  
  36. void fib(long long n)
  37. {
  38.     fb[0]=0;
  39.     fb[1]=1;
  40.     if(n>1)
  41.         for(int i=2;i<=n;i++)
  42.         {
  43.             fb[i]=fb[i-1]+fb[i-2];
  44.             if(fb[i]>=n)break;
  45.             k++;
  46.         }
  47. }
  48. int main ()
  49. {
  50.     long long n;
  51.     cin>>n;
  52.     fib(n);
  53.     if(n==1)cout<<1<<'\n';
  54.         else
  55.             {
  56.                 for(int i=2;i<k;i++)
  57.                     if(n%fb[i]==0) cout<<fb[i]<<' ';
  58.                 cout<<'\n';
  59.             }
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement