#include <cstdio>
#include<iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct fraction{
int top;
int down;
};
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
//分数之间比较大小,大为true,小为false
bool big(fraction a,fraction b){
return (a.top*b.down)>(a.down*b.top);
}
//判断是不是最简分数
bool is_simple(fraction a){
if(gcd(a.top,a.down)==1){
return true;
} else{
return false;
}
}
int main(){
fraction a,b,c;
scanf("%d/%d %d/%d",&a.top,&a.down,&b.top,&b.down);
// 做一个检测
if(a.top*b.down>b.top*a.down){
swap(a.top,b.top);
swap(a.down,b.down);
}
int k;
cin>>k;
c.down= k;
vector<fraction> ans;
for (int i = 1; i <k ; ++i) {
c.top=i;
if(big(c,a)&&big(b,c)&&is_simple(c)){
ans.push_back(c);
}
}
vector<fraction>::iterator it;
for ( it = ans.begin(); it!=ans.end() ; ++it) {
if(it!=ans.begin()) printf(" ");
printf("%d/%d",it->top,it->down);
}
return 0;
}
乙级1062
最新推荐文章于 2021-12-08 01:35:03 发布