#include<iostream>
#include<algorithm>
using namespace std;
struct fen{ //用结构体来分别存分子分母
int fz,fm;
}a[1010];
int gcd(int a,int b){ //辗转相除法判断是否还能约分
if(b==0) return a;
return gcd(b,a%b);
}
bool cmp(fen a,fen b){
return a.fz*b.fm<a.fm*b.fz;
}
int main() {
int n;
cin>>n;
a[1].fz=0,a[1].fm=1;
int k=1;
for(int i=1;i<=n;i++){ //枚举分母
for(int j=1;j<i;j++) //枚举分子
{
if(gcd(i,j)==1){
k++;
a[k].fz=j;
a[k].fm=i;
}
}
}
sort(a+1,a+1+k,cmp); //按照分数小的排序
for(int i=1;i<=k;i++){
printf("%d/%d\n",a[i].fz,a[i].fm);
}
return 0;
}
//1.判断互质
//2.如何存分数? 结构体
//分数如何排序? 小学数学
东华oj 120--顺序的分数
最新推荐文章于 2024-07-25 16:23:28 发布