English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Exemplos de cálculo do maior divisor comum de dois inteiros (inteiros positivos e negativos) usando loops e statements de decisão de diferentes maneiras.
Para entender este exemplo, você deve entender o seguinteC programmingTema:
O HCF ou GCD (maior divisor comum) de dois inteiros pode ser o inteiro maior que pode dividir os dois números exatamente (sem resto).
Existem muitos métodos para encontrar o maior divisor comum no C programming.
#include <stdio.h> int main() { int n1, n2, i, gcd; printf("Insira dois inteiros: "); scanf("%d %d", &n1, &n2); for(i=1; i <= n1 && i <= n2; ++i) { // Verificar se i é um divisor dos dois inteiros if(n1%i==0 && n2%i==0) gcd = i; } printf("O MDC de %d e %d é %d", n1, n2, gcd); return 0; }
Neste programa, os dois inteiros inseridos pelo usuário são armazenados nas variáveis n1e n2em. Em seguida, o loop for, até que i seja menor que n1e n2.
Em cada iteração, se n1e n2pode ser dividido por i, então o valor de i será atribuído a gcd.
Quando o loop for terminar, o maior divisor comum dos dois números será armazenado na variável gcd.
#include <stdio.h> int main() { int n1, n2; printf("Insira dois inteiros positivos: "); scanf("%d %d",&n1&n2); while(n1!=n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } printf("Maior Causa Comum = %d", n1); return 0; }
Resultado de Saída
Insira dois inteiros positivos: 81 153 Maior Causa Comum = 9
Esta é uma maneira melhor de encontrar o maior divisor comum. Neste método, subtraí-se o inteiro menor do inteiro maior, e o resultado é atribuído à variável que armazena o inteiro maior. Este processo continua até que n1e n2iguais.
Apenas quando o usuário inserir um inteiro positivo, os dois programas acima funcionarão conforme esperado. Esta é uma modificação de alguns exemplos, que podem encontrar o maior divisor comum de números inteiros positivos e negativos.
#include <stdio.h> int main() { int n1, n2; printf("Insira dois inteiros: "); scanf("%d %d",&n1&n2); // Se o usuário inserir um número negativo, o sinal desse número será alterado para positivo n1 = ( n1 > 0) ? n1 : -n1; n2 = ( n2 > 0) ? n2 : -n2; while(n1!=n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } printf("Maior Causa Comum = %d", n1); return 0; }
Resultado de Saída
Entre dois inteiros: 81 -153 Maior Causa Comum = 9
Você também pode usarRecursão para encontrar o Maior Causa Comum.