lina_os

Untitled

Mar 21st, 2025
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <string.h>
  5. #include <bits/stdc++.h>
  6. #include <cstdlib>
  7. #include <time.h>
  8. #include <fstream>
  9. #include <iterator>
  10. #include <utility>
  11. #include <algorithm>
  12. #include <set>
  13. #include <map>
  14. #include <bitset>
  15.  
  16. using namespace std;
  17.  
  18. #define ll long long
  19. #define ull unsigned ll
  20. #define ld long double
  21. typedef vector<int> vi;
  22. typedef multiset<int> mi;
  23. typedef multiset<ll> mll;
  24. typedef vector<ll> vll;
  25. typedef vector<bool> vb;
  26. typedef vector<string> vs;
  27. typedef vector<vector<int>> _2vi;
  28. typedef vector<vector<ll>> _2vll;
  29. #define all(v) ((v).begin()), ((v).end())
  30. #define sz(v) ((ll)((v).size()))
  31.  
  32. #define vinp(v, n) \
  33. for (ull i = 0; i < (n); i++) \
  34. cin >> (v)[i]
  35. #define printv(v) \
  36. for (auto i : (v)) \
  37. cout << i << " "
  38. #define fr0(i, n) for (ull(i) = 0; (i) < (n); (i)++)
  39. #define fr1(i, n) for (ull(i) = 1; (i) < (n); (i)++)
  40. #define fr(i, x, n) for (ull(i) = (x); (i) < (n); (i)++)
  41. #define _CRT_SECURE_NO_WARNING
  42. const ll MOD = 1000000007;
  43.  
  44. void Bustany() {
  45. ios_base::sync_with_stdio(false);
  46. cin.tie(NULL);
  47. cout.tie(NULL);
  48. #ifndef ONLINE_JUDGE
  49. freopen("./in.txt", "r", stdin), freopen("./out.txt", "w", stdout);
  50. #endif
  51. }
  52.  
  53.  
  54. ll fac(ull n){
  55. ll f=0;
  56. for (ll i = 2; i*i <= n; i++) {
  57. while (n > 0 && n % i == 0) {
  58. f++;
  59. n /= i;
  60. }
  61. }
  62. return f;
  63. }
  64.  
  65.  
  66. void solve() {
  67. ll a, b;
  68. cin >> a >> b;
  69. if (b > a)swap(a, b);
  70. if (a % b != 0) {
  71. cout << -1 << '\n';
  72. return ;
  73. }
  74. ull ans = a / b;
  75. if ((ull)((ull)(sqrt(ans)* (ull)sqrt(ans)))!=ans) {
  76. cout << -1 << '\n';
  77. return ;
  78. }
  79. cout << fac(sqrt(ans)) << '\n';
  80.  
  81. // logx(y) = log10(y) / log10(x)
  82.  
  83. }
  84.  
  85. int main() {
  86. Bustany();
  87. ll t = 1;
  88. cin >> t;
  89. while (t--) {
  90. solve();
  91.  
  92. }
  93. }
Add Comment
Please, Sign In to add comment