#include<bits/stdc++.h>
using namespace std;
#include<math.h>
int a[10000010];
int main() {
memset(a, 0, sizeof(a));
int jz1, jz2;
int r, l;
int s;
cin >> jz1 >> jz2 >> r >> l >> s;
int ss = 0;
for (int i = jz1; i <= jz2; i++) {
for (int j = 1; j < i; j++) {
for (int k = 0; k < i; k++) {
if (j != k) {
ss = 0;
int n = 0;
int p = 0;
while (ss <= l) {
if (p % 2 == 0) {
ss = ss * i + j;
++p;
}
else {
ss = ss * i + k;
++p;
}
if (ss <= l && ss >= r) {
a[ss] += 1;
}
}
}
}
}
}
for (int i = r; i <= l; i++) {
if (a[i] == s) {
cout << i << "\n";
}
}
}
将在范围【r,l】里的波浪数ss都用10进制枚举出来利用数组a[10000010]存储ss的重数