Scheduler
math.cpp
Go to the documentation of this file.
1 
10 #include "math.h"
11 
12 #include <cmath>
13 #include <cassert>
14 #include <cstddef>
15 
16 namespace Utils
17 {
18 
19 int lcm(std::vector<int> array)
20 {
21  size_t size = array.size();
22  int result = 0;
23  std::vector<int> array2 = array;
24  int min;
25  while(1)
26  {
27  min = array2[0];
28  bool allEqual = true;
29  for (size_t i = 1; i < size; i++)
30  {
31  if (array2[i] != array2[i-1])
32  allEqual = false;
33  if (array2[i] < min)
34  min = array2[i];
35  }
36  if (allEqual)
37  {
38  result = array2[0];
39  break;
40  }
41  for (size_t i = 0; i < size; i++)
42  {
43  if (array2[i] == min)
44  array2[i] += array[i];
45  }
46  }
47  return result;
48 }
49 
50 int gcd(std::vector<int> /*array*/)
51 {
52  /*TODO....*/
53  assert(false);
54  return 0;
55 }
56 
57 
58 }
59 
int lcm(std::vector< int > array)
Definition: math.cpp:19
Definition: context.h:16
int gcd(std::vector< int >)
Definition: math.cpp:50