Bolo (maior divisor comum)

tópico:

Uma festa de aniversário pode ter p ou q pessoas presentes e um bolo grande já está pronto. Pergunte pelo menos quantos pedaços do bolo devem ser cortados (cada pedaço pode não ser do mesmo tamanho), para que p ou q pessoas possam comparecer qualquer situação, pode dividir o bolo uniformemente.

Entrada

Cada linha possui dois números pe q.

Resultado

Produza o número mínimo de bolos a serem cortados em pedaços.

Amostra de entrada

2 3

Saída de amostra

4


  

Dica

将蛋糕切成大小分别为1/3,1/3,1/6,1/6的四块即满足要求.
当2个人来时,每人可以吃1/3+1/6=1/2 , 1/2块。
当3个人来时,每人可以吃1/6+1/6=1/3 , 1/3, 1/3块。
 

Patrocinador

Ideias:

Corte em p partes pela primeira vez e corte em q partes pela segunda vez.As duas devem ter arestas de corte sobrepostas.

O número de arestas de corte sobrepostas é o maior divisor comum de peq, e então use (p + q) -maior divisor comum

Código de implementação:

#include <stdio.h>
#include <algorithm>
using namespace std;

int main()
{
    int p,q;
    while(~scanf("%d %d",&p,&q))
        printf("%d\n",p+q-__gcd(p,q));
    return 0;
}

suplemento:

1. função __gcd () Encontre o máximo divisor comum e chame diretamente, o algoritmo do arquivo de cabeçalho

Acho que você gosta

Origin blog.csdn.net/with_wine/article/details/113943224
Recomendado
Clasificación