三齿轮问题(最大公约数)

在齿轮箱里三个齿轮互相衔接,某瞬间两对齿相遇,问各转多少圈后,这两对齿同时重逢。

输入

输入数据有多组,每组数据一行,每行为3个数a,b,c,分别代表三个齿轮的齿数(均为正整数)。数与数之间用空格隔开。当a,b,c中有一个为0时,输入结束。

输出

输出每组数据中,每个齿轮所转的圈数,用空格隔开。

样例输入

1 1 1
2 2 2
0 0 0

样例输出

1 1 1
1 1 1


#include


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
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          if(i%a==0&&i%b==0&&i%c==0) break;
       printf("%d %d %d\n",i/a,i/b,i/c);
   }  return 0;
}    //最笨的方法 穷举法 一样能过

你可能感兴趣的:(c/c++)