#include <bits/stdc++.h>
using namespace std;
long long n, ans;
int a, b, p;
int inv[1000010];
int fast_pow(int a, int x) {
  int ans = 1;
  for (; x; x >>= 1, a = 1ll * a * a % p)
    if (x & 1) ans = 1ll * ans * a % p;
  return ans;
}
int main() {
  scanf("%d%d%d%lld", &a, &b, &p, &n);
  inv[0] = 1;
  inv[1] = fast_pow(a, p - 2);
  for (int i = 2; i < p; i++) inv[i] = 1ll * inv[i - 1] * inv[1] % p;
  for (int i = 0; i < p - 1; i++) {
    long long t =
        n - 1ll * ((p + i - (1ll * b * inv[i]) % p) % p) * (p - 1) - i;
    if (t >= 0) ans += t / p / (p - 1) + 1;
  }
  printf("%lld", ans);
}
