Задачка, в сущности, очень проста.
Смотрите, пусть время полного оборота для первой планеты t1, для второй t2.
Следующая встреча для первой планет произойдет через n оборотов, для второй через m.
Полное время для первой планеты тогда будет n*t1, для второй m*t2.
Но это же одно и тоже время, т.е. n*t1=m*t2. Вот в общем то и все.
Как решать такие уравнения вы, естественно, знаете. Вот фрагмент кода:
Подсветка синтаксиса языка cpp
while(1){
m=0;
while(1){
if(n*t1==m*t2&&n!=0){
p=1; break;
}
m++;
if(m*t2>n*t1)break;
}
if(p==1)break;
n++;
}
printf("%u %u %u\n",n,m,n*t1);