Programa C para exibir o número Armstrong entre dois intervalos

Neste exemplo, você aprenderá a encontrar todos os números Armstrong entre dois inteiros inseridos pelo usuário.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C:

  • Declaração C if … else
  • C para Loop

Um número inteiro positivo é chamado de número Armstrong (de ordem n) se

 abcd… = an + bn + cn + dn + 

No caso de um número Armstrong de 3 dígitos, a soma dos cubos de cada dígito é igual ao próprio número. Por exemplo, 153 é um número de Armstrong porque

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 

Antes de tentar este programa, aprenda como verificar se um inteiro é um número de Armstrong ou não.

Números de Armstrong entre dois inteiros

 #include #include int main() ( int low, high, number, originalNumber, rem, count = 0; double result = 0.0; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Armstrong numbers between %d and %d are: ", low, high); // iterate number from (low + 1) to (high - 1) // In each iteration, check if number is Armstrong for (number = low + 1; number < high; ++number) ( originalNumber = number; // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10; ++count; ) originalNumber = number; // result contains sum of nth power of individual digits while (originalNumber != 0) ( rem = originalNumber % 10; result += pow(rem, count); originalNumber /= 10; ) // check if number is equal to the sum of nth power of individual digits if ((int)result == number) ( printf("%d ", number); ) // resetting the values count = 0; result = 0; ) return 0; )

Resultado

 Digite dois números (intervalos): 200 2.000 Os números Armstrong entre 200 e 2.000 são: 370 371 407 1634 

No programa, o loop externo é iterado de (baixo + 1) para (alto - 1) . Em cada iteração, é verificado se o número é um número de Armstrong ou não.

Dentro do loop externo, o número de dígitos de um inteiro é calculado primeiro e armazenado em count. E, a soma da potência dos dígitos individuais é armazenada na variável de resultado.

Se o número for igual a result, o número é um número de Armstrong.

Observação: você precisa redefinir a contagem e o resultado para 0 em cada iteração do loop externo.

Artigos interessantes...