#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; const double eps = 1e-8; const int N = 50000+1000; #define LL long long int pre[N], mu[N],st[N]; int n,a,b,c,d,k,cn; long long res; void into() { mu[1] = 1; for (int i = 2; i <= N; i++) { if (!st[i]) pre[++cn] = i, mu[i] = -1; for (int j = 1; pre[j] * i <= N&&j<=cn; j++) { st[pre[j] * i] = 1; if (i % pre[j] == 0) break; mu[i*pre[j]] = -mu[i]; } } for (int i = 1; i <= N; i++) mu[i] += mu[i - 1]; } int g(int l, int k) { if (k / l==0) return n; return k /(k / l); } long long f(int a, int b) { res = 0; n = min(a, b); int x = a / k, y = b / k; for (int i = 1,j=1; i <=n; i=j+1) { j = min(n, min(g(i,x),g(i,y))); res += (LL)(mu[j] - mu[i - 1])*(x/i)*(y/i); } return res; } int main() { into(); int T; cin >> T; while (T--) { cin >> a >> b >> c >> d >> k; cout << f(b, d) - f(a-1, d) - f(b, c-1) + f(a-1, c-1) << endl; } return 0; }