English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Função do C

Array do C

Ponteiro do C

String do C

Estruturas de linguagem C

Arquivos de linguagem C

Outros C

Manual de referência do C

Programa C para encontrar o LCM de dois números

大全 de programação do C

Neste exemplo, você aprenderá como calcular o LCM (mínimo múltiplo comum) de dois números digitados pelo usuário.

Para entender este exemplo, você deve entender o seguinteProgramação CTema:

dois inteiros n1e n2o LCM é o menor inteiro positivo que pode ser dividido por n1e n2dividem completamente (sem resto). Por exemplo,72e12O LCM mais pequeno (LCM) é360。

Usar while e if para calcular LCM (mínimo múltiplo comum)

#include <stdio.h>
int main() {
    int n1, n2, min;
    printf("Digite dois inteiros positivos: ");
    scanf("%d %d", &n1, &n2);
    //n1e n2O maior valor entre eles é armazenado em min
    min = (n1 > n2) ? n1 : n2;
    while (1) {
        if (min % n1 == 0 && min % n2 == 0) {
            printf("O LCM de %d e %d é %d.", n1, n2, min);
            break;
        }
        ++min;
    }
    return 0;
}

Resultado de saída

Digite dois inteiros positivos: 72
120
72e12O LCM de 0 é360。

Neste programa, os inteiros digitados pelo usuário são armazenados nas variáveis n1e n2。

n1e n2o maior valor armazenado em min, o LCM dos dois números não pode ser menor que min.

expressão de teste do loop while sempre for verdadeira.

Verifique se o min pode ser dividido por n1e n2dividem completamente.

if (min % n1 == 0 && min % n2 == 0) { ... }

Se esta condição de teste não for verdadeira, o min aumentará1e continue iterando até que a expressão de teste do comando if seja verdadeira.

Também pode usar a seguinte fórmula para encontrar o LCM de dois números:

LCM = (num1*num2)/GCD

Entenda como encontrar GCD em programação CO GCD de dois números

Usar GCD para calcular LCM

#include <stdio.h>
int main() {
    int n1, n2, i, gcd, lcm;
    printf("Digite dois inteiros positivos: ");
    scanf("%d %d", &n1, &n2);
    for (i = 1; i <= n1 && i <= n2; ++i) {
        
        // Verificar se i é um fator comum de dois inteiros
        if (n1 %i == 0 && n2 %i == 0)
            gcd = i;
    }
    lcm = (n1 * n2) / gcd;
    printf("Os dois números %d e %d têm LCM %d.", n1, n2, lcm);
    return 0;
}

Resultado de saída

Digite dois inteiros positivos: 78
150
dois números78e15O LCM de 0 é1950。

大全 de programação do C