fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. ll gcd(ll a, ll b){
  5. if(a==0||b==0) return a+b;
  6. if(a==b) return a;
  7. return gcd(b,a%b);
  8. }
  9. ll phi(ll n){
  10. ll ans = n;
  11. ll d = 2,dem;
  12. while(d*d<=n){
  13. dem = 0;
  14. while(n%d==0){
  15. n/=d;
  16. dem++;
  17. }
  18. if(dem>0) ans-=ans/d;
  19. d++;
  20. }
  21. if(n>1) ans-=ans/n;
  22. return ans;
  23. }
  24. int main(){
  25. ll a,b,d,t;
  26. cin>>t;
  27. while(t--){
  28. cin>>a>>b;
  29. d=gcd(a,b);
  30. cout<<phi(b/d)<<'\n';
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0s 4172KB
stdin
3
4 9
5 10
42 9999999967
stdout
6
1
9999999966