#include <bits/stdc++.h>   using namespace std;   long long p, x, a, b, ni, ans;   void e_gcd(long long a, long long b, long long &x, long long &y) {     if (b == 0) {       x = 1;       y = 0;       return;     }     e_gcd(b, a % b, x, y);     int tmp = x;     x = y;     y = tmp - (a / b) * y;     return;   }   int main() {     cin >> a >> b >> p >> x;     long long i, j, s;     e_gcd(a, p, ni, s);     a = 1;     for (j = 1; j <= p - 1; j++) {       a = a * ni % p;       i = (j - b * a % p + p) % p;       long long n = i * (p - 1) + j;       if (n <= x) ans += (x - n) / (p * (p - 1)) + 1;     }     cout << ans << endl;     return 0;   }   