solution
- 输出给定范围内,以k为分母的分数(分子分母互质)
- 测试点1:给的两个分数不一定第一个小于第二个
- 测试点2:“给出两个正分数之间”,则开区间,即等于这两个分数的值不输出
#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int a, int b){
if(!b) return a;
return gcd(b, a % b);
}
int main(){
double s1, s2, e1, e2, k, flag = 1;
scanf("%lf/%lf%lf/%lf%lf", &s1, &s2, &e1, &e2, &k);
if(s1 / s2 > e1 / e2){
swap(s1, e1);
swap(s2, e2);
}
for(int i = 1; i < k && i / k < e1 / e2; i++){
if(i / k > s1 / s2 && gcd(i, k) == 1){
if(flag) flag = 0;
else printf(" ");
printf("%d/%.0f", i, k);
}
}
return 0;
}