#include <bits/stdc++.h>
using namespace std;
int a, b, p;
long long x;
inline int pow(int a, int b, int p) {
  long long ans = 1, base = a;
  while (b) {
    if (b & 1) {
      (ans *= base) %= p;
    }
    (base *= base) %= p;
    b >>= 1;
  }
  return (int)ans;
}
inline int inv(int x, int p) { return pow(x, p - 2, p); }
int main() {
  cin >> a >> b >> p >> x;
  long long ans = 0;
  for (int i = 1; i <= p - 1; i++) {
    int now = (long long)b * inv((long long)pow(a, i, p), p) % p;
    long long f = (long long)(p - 1) * ((i - now + p) % p) + i;
    if (f > x) continue;
    ans += (x - f) / ((long long)p * (p - 1)) + 1;
  }
  cout << ans;
}
