描述
按递增顺序依次列出所有分母为N(10 <= N <= 40),分子小于N的最简分数。
输入
分母 N。
输出
分数之间用逗号分开(含最末逗号)
输入输出示例
输入 | 输出 | |
示例 1 | | |
#include<stdio.h>
//主要讲解 本题要求输出最简分数,如果输入n为10
//则输出得分数分别是1/10,3/10,7/10,9/10
//我们要发现规律,为什么2/10, 4/10,5/10,6/10,8/10
//这些数被去掉了呢,因为他们能约分,都公约数,仔细观察
//2是同时被 2/10的2和10约分掉,2也能被4/10 的4和10约掉
//这些是他们得最小公约数
//最小被公约数是从2到n-1这个范围
//该题j为从2开始依次递增寻找最小公约数
//若一个数同时能被分子和分数整除的,则这个数是它的最小公约数
//若找到则标记
//后面再根据标记的判断去输入最简分数
int main()
{
int n,i,j=2,flat=0;
scanf("%d",&n);
for(i=1;i<n;i++)
{
for(j=2;j<n;j++)
{
if(i%j==0&&n%j==0)
flat=1;
}
if(flat==0)
{
printf("%d/%d,",i,n);
}flat=0;
}
}