Guest User

Untitled

a guest
Jul 21st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <vector>
  2. #include <cstdio>
  3. #include <set>
  4. #include <iostream>
  5. #include <cmath>
  6. #include <algorithm>
  7. using namespace std;
  8.  
  9. #define sz size()
  10. #define all(x) (x).begin(),(x).end()
  11. #define pb push_back
  12. #define mp make_pair
  13. #define X first
  14. #define Y second
  15. #define abs(x) ((x) >= 0) ? (x) : -(x)
  16. #define sqr(x) ((x)*(x))
  17.  
  18.  
  19. bool good(long long n) {
  20. long long a = sqrt(n + .0);
  21. return (a * a == n);
  22. }
  23.  
  24. int main() {
  25. long long a, n, sq, mn;
  26. cin >> a >> n;
  27. vector<long long> voc(a + n + 1, 1);
  28. for(int i = a; i <= a + n; i++) {
  29. if(good(i)) {
  30. voc[i] = i;
  31. }
  32. }
  33.  
  34. long long mx = ceil(sqrt(a + n + 1.0));
  35. for(long long i = 2; i <= mx; i++) {
  36. sq = i * i;
  37. mn = (long long)(a / sq) * sq;
  38. for(int j = mn; j <= a + n; j += sq) {
  39. voc[j] = max(sq, voc[j]);
  40. }
  41. }
  42.  
  43. sq = 0;
  44. for(int i = a; i < a + n; i++) {
  45. sq += i / voc[i];
  46. }
  47. cout << sq << endl;
  48. return 0;
  49. }
Add Comment
Please, Sign In to add comment