fork download
  1. #include <iostream>
  2. #include <utility>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <numeric>
  6. #include <map>
  7. #include <unordered_set>
  8. #include <unordered_map>
  9. #include <queue>
  10. #include <set>
  11. #include <stack>
  12. #include <fstream>
  13. #include <ext/pb_ds/assoc_container.hpp>
  14. #include <ext/pb_ds/tree_policy.hpp>
  15. #include <bitset>
  16.  
  17. using namespace std;
  18. using namespace __gnu_pbds;
  19.  
  20.  
  21. const int MAXN = 1e4;
  22. vector<bool> isPrime(MAXN + 1, true);
  23. vector<int> primes;
  24.  
  25. void erat() {
  26. isPrime[0] = isPrime[1] = false;
  27. for (int i = 2; i <= MAXN; i++) {
  28. if (isPrime[i] && (i * i <= MAXN)) {
  29. primes.push_back(i);
  30. for (int j = i * i; j <= MAXN; j += i)
  31. isPrime[j] = false;
  32. }
  33. }
  34. }
  35.  
  36. int main() {
  37. erat();
  38.  
  39. int n; cin >> n;
  40. vector<int> v(n);
  41. for (int i = 0; i < n; ++i) cin >> v[i];
  42.  
  43. int ans = 1e9;
  44. for (auto &p: primes) {
  45. int sum = 0;
  46. for (auto &el: v) sum += ((p - (el % p)) % p);
  47. ans = min(ans, sum);
  48. }
  49. cout << ans;
  50. }
Success #stdin #stdout 0.01s 5284KB
stdin
5
3 8 7 6 4
stdout
2