Description
输入一个自然数N
请写一个程序来增序输出分母小于等于N 的既约真分数
Input
单独的一行 一个自然数N(1..160)
Output
每个分数单独占一行
Sample Input
5
Sample Output
0/1
1/5
1/4
1/3
2/5
1/2
3/5
2/3
3/4
4/5
1/1
#include<stdio.h>
int x[15001],y[15001],z=1e9,idx;
int gcd(int x,int y)
{
while(y)
{
z=x%y;
x=y;
y=z;
}
return x;
}
int main()
{
int n,i,j,v;
scanf("%d",&n);
printf("0/1\n");
for(i=1;i<=n;i++)
for(j=1;j<i;j++)
{
if(gcd(i,j)==1)
x[++idx]=j,y[idx]=i;
}
for(i=1;i<=idx;i++)
for(j=1;j<i;j++)
{
if(x[i]*y[j]<x[j]*y[i])
{
v=x[i],x[i]=x[j],x[j]=v;
v=y[j],y[j]=y[i],y[i]=v;
}
}
for(i=1;i<=idx;i++)
printf("%d/%d\n",x[i],y[i]);
printf("1/1");
}