Advertisement
Solingen

z10.2.cpp

Dec 22nd, 2024
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. long long gcd(long long a, long long b)
  6. {
  7.     while(b != 0)
  8.     {
  9.         long long t = a % b;
  10.         a = b;
  11.         b = t;
  12.     }
  13.     return a;
  14. }
  15.  
  16. long long lcm(long long a, long long b)
  17. {
  18.     return (a / gcd(a,b)) * b;
  19. }
  20.  
  21. // НОД всего массива
  22. long long gcdArray(const vector<long long>& arr)
  23. {
  24.     if (arr.empty()) return 0;
  25.     long long g = arr[0];
  26.     for (int i = 1; i < (int)arr.size(); i++)
  27.     {
  28.         g = gcd(g, arr[i]);
  29.     }
  30.     return g;
  31. }
  32.  
  33. // НОК всего массива
  34. long long lcmArray(const vector<long long>& arr)
  35. {
  36.     if (arr.empty()) return 0;
  37.     long long l = arr[0];
  38.     for (int i = 1; i < (int)arr.size(); i++)
  39.     {
  40.         l = lcm(l, arr[i]);
  41.     }
  42.     return l;
  43. }
  44.  
  45. int main()
  46. {
  47.     int k;
  48.     cout << "Количество чисел: ";
  49.     cin >> k;
  50.  
  51.     vector<long long> data(k);
  52.     for (int i = 0; i < k; i++)
  53.     {
  54.         cin >> data[i];
  55.     }
  56.  
  57.     cout << "НОД = " << gcdArray(data) << endl;
  58.     cout << "НОК = " << lcmArray(data) << endl;
  59.  
  60.     return 0;
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement