Advertisement
Solingen

z10.3.cpp

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