Problem B: 奇怪的分式


Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 1142  

Solved: 541

[​Submit​​][​Status​​][​Web Board​​]


Description


上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: 
 1/4 乘以 8/5  
 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png)


老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! 
对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 
请写出所有不同算式的个数(包括题中举例的)。 
显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。 
但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列!

请输出所有满足小明新算法的分式组合,以及这类分数组合的个数。


Input


没有输入


Output


请输出所有满足小明新算法的分式组合,以及这类分数组合的个数。


Sample Output

1/2 5/4
1/4 8/5
1/6 4/3
1/6 6/4

...



9/4 8/9
n
#include <stdio.h>
int gcd(int m,int n)//求最大公约数
{
int t;
if(m<n)
{
t=m;
m=n;
n=t;
}
while(m%n!=0)
{
t=m%n;
m=n;
n=t;
}
return n;
}

int main()
{
int a,b,c,d;
int m,n,p,q;
int i,j;
int count=0;
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
{
if(a==b)
continue;
for(c=1;c<=9;c++)
{
for(d=1;d<=9;d++)
{
if(c==d)
continue;
m=a*c;
n=b*d;
p=a*10+c;
q=b*10+d;
i=gcd(m,n);//求最大公约数
j=gcd(p,q);
m/=i;
n/=i;
p/=j;
q/=j;
if(m==p&&n==q)//约分后是否相等
{
printf("%d/%d %d/%d\n",a,b,c,d);
count++;
}
}
}
}
}
printf("%d\n",count);
return 0;
}


此题需要注意的就是约分,即求最大公约数。


约分后才可判断是否相等.