Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstdio>
  4. #include <algorithm>
  5. #include <map>
  6. #include <vector>
  7.  
  8. #define llong long long
  9.  
  10. using namespace std;
  11.  
  12. const int INF = (int) 1e9 + 7;
  13. const int MXN = (int) 1e6 + 7;
  14.  
  15. int t, n, m;
  16. int g[MXN];
  17.  
  18. llong ans;
  19.  
  20. llong f(llong d) {
  21. return (n / d) * (m / d);
  22. }
  23.  
  24. int slow(int x, int y) {
  25. int c = 0;
  26. for (int i = 0; i <= x; i++)
  27. for (int j = 0; j <= y; j++)
  28. if (__gcd(i, j) == 1) c++;
  29.  
  30. return c;
  31. }
  32.  
  33. int main() {
  34. ios_base::sync_with_stdio(0);
  35. for (int i = 1; i < MXN; i++) {
  36. g[i] = 1;
  37. int cur = i;
  38. for (int d = 2; d * d <= cur; d++) {
  39. if (cur % d != 0)
  40. continue;
  41.  
  42. int cnt = 0;
  43. while (cur % d == 0) {
  44. cur /= d;
  45. cnt++;
  46. }
  47. if (cnt >= 2) {
  48. g[i] = 0;
  49. break;
  50. }
  51. g[i] = -g[i];
  52. }
  53. if (cur > 1) g[i] = -g[i];
  54. }
  55.  
  56. cin >> t;
  57. for (int cases = 1; cases <= t; cases++) {
  58. cin >> n >> m;
  59. if (m < n) swap(n, m);
  60. llong ans = 0;
  61. for (int i = 1; i <= n; i++)
  62. ans += f(i) * (llong) g[i];
  63.  
  64. ans += 2;
  65. if (!n && !m) ans = 0;
  66. else if (!n || !m) ans = 1;
  67. cout << "Case " << cases << ": " << ans << "\n";
  68. }
  69. return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement