Xét tập tất cả các phân số tối giản nằm trong đoạn từ 0 đến 1, với mẫu số là số nguyên dương nhỏ hơn hoặc bằng N và tử số là các số nguyên không âm. Cho trước một số nguyên N (1<=N<=160), ghi ra các phân số theo thứ tự tăng.
Xét tập tất cả các phân số tối giản nằm trong đoạn từ 0 đến 1, với mẫu số là số nguyên dương nhỏ hơn hoặc bằng N và tử số là các số nguyên không âm. Cho trước một số nguyên N (1<=N<=160), ghi ra các phân số theo thứ tự tăng.
minh co doan code ne tham khao nhe
#include<conio.h>
#include<stdio.h>
void phanso(int a,int b,int *al,int *bl);
int uscln(int a,int b);
main()
{
int a,b,*al,*bl;
printf("nhap a,b\n");
scanf("%d %d",&a,&b);
uscln(a,b);
phanso(&a,&b,&al,&bl);
printf("phn so tra ve la %d/%d=%d/%d\n",a,b,al,bl);
getch();
}
int uscln(int a,int b)
{
if(a==0||b==0)
return a+b;
else
return (a==0)?b:uscln(b,b%a);
}
void phanso(int a,int b,int *al,int *bl)
{
al=&a;
bl=&b;
int t=uscln(*al,*bl);
*al=*al/t;
*bl=*bl/t;
}