這道題不難,記錄下來的原因,是在處理不包含兩端的數(shù)的時(shí)候,想到了
floor()+1和ceil()-1
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a;
else return gcd(b, a % b);
}
int main() {
int n1, m1, n2, m2, k;
scanf("%d/%d%d/%d%d", &n1, &m1, &n2, &m2, &k);
if (n1 * m2 > n2 * m1) {
swap(n1, n2);
swap(m1, m2);
}
bool flag = false;
for (int i = floor(k * n1 * 1.0/ m1)+1; i <= ceil(n2 * k * 1.0/ m2)-1; i++) {
if (gcd(i, k) == 1) {
printf("%s%d/%d", flag == true ? " " : "", i, k);
flag = true;
}
}
return 0;
}