在齿轮箱里三个齿轮互相衔接,某瞬间两对齿相遇,问各转多少圈后,这两对齿同时重逢。
输入
输入数据有多组,每组数据一行,每行为3个数a,b,c,分别代表三个齿轮的齿数(均为正整数)。数与数之间用空格隔开。当a,b,c中有一个为0时,输入结束。
输出
输出每组数据中,每个齿轮所转的圈数,用空格隔开。
样例输入
1 1 1
2 2 2
0 0 0
2 2 2
0 0 0
样例输出
1 1 1
1 1 1
1 1 1
#include <stdio.h>
int gbs(int n,int m)
{
int r,a;
r=n%m;
a=n*m;
while(r)
{
n=m;
m=r;
r=n%m;
}
a=a/m;
return a;
}
int main()
{
int a,b,c,d;
while(~scanf("%d %d %d",&a,&b,&c)&&a&&b&&c)
{
d=gbs(a,b);
d=gbs(d,c); //求最大公约数 再除以齿数即可
a=d/a;
b=d/b;
c=d/c;
printf("%d %d %d\n",a,b,c);
}
return 33;
} //求最大公约数
#include<stdio.h>
int main()
{
int a,b,c,i,max;
while(scanf("%d%d%d",&a,&b,&c),a&&b&&c)
{
max=(a>b)?a:b;
max=(max>c)?max:c;
for(i=max;i<a*b*c;i++)
if(i%a==0&&i%b==0&&i%c==0) break;
printf("%d %d %d\n",i/a,i/b,i/c);
} return 0;
} //最笨的方法 穷举法 一样能过
int gbs(int n,int m)
{
int r,a;
r=n%m;
a=n*m;
while(r)
{
n=m;
m=r;
r=n%m;
}
a=a/m;
return a;
}
int main()
{
int a,b,c,d;
while(~scanf("%d %d %d",&a,&b,&c)&&a&&b&&c)
{
d=gbs(a,b);
d=gbs(d,c); //求最大公约数 再除以齿数即可
a=d/a;
b=d/b;
c=d/c;
printf("%d %d %d\n",a,b,c);
}
return 33;
} //求最大公约数
#include<stdio.h>
int main()
{
int a,b,c,i,max;
while(scanf("%d%d%d",&a,&b,&c),a&&b&&c)
{
max=(a>b)?a:b;
max=(max>c)?max:c;
for(i=max;i<a*b*c;i++)
if(i%a==0&&i%b==0&&i%c==0) break;
printf("%d %d %d\n",i/a,i/b,i/c);
} return 0;
} //最笨的方法 穷举法 一样能过