C Program för att visa Armstrong nummer mellan två intervall

Innehållsförteckning

I det här exemplet lär du dig att hitta alla Armstrong-nummer mellan två heltal som anges av användaren.

För att förstå detta exempel bör du ha kunskap om följande C-programmeringsämnen:

  • C if… else Uttalande
  • C för loop

Ett positivt heltal kallas ett Armstrong-tal (av ordning n) om

 abcd… = an + bn + cn + dn + 

När det gäller ett Armstrong-antal på tre siffror är summan av kuber av varje siffra lika med själva numret. Till exempel är 153 ett Armstrong-nummer på grund av

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

Innan du prövar det här programmet ska du lära dig att kontrollera om ett heltal är ett Armstrong-nummer eller inte.

Armstrong siffror mellan två heltal

 #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; )

Produktion

 Ange två nummer (intervall): 200 2000 Armstrong-tal mellan 200 och 2000 är: 370 371 407 1634 

I programmet upprepas den yttre slingan från (låg + 1) till (hög - 1) . I varje iteration kontrolleras om nummer är ett Armstrong-nummer eller inte.

Inuti den yttre slingan beräknas antalet siffror i ett heltal först och lagras i count. Och summan av kraften för enskilda siffror lagras i resultatvariabeln.

Om talet är lika med resultär numret ett Armstrong-tal.

Obs! Du måste återställa antalet och resultatet till 0 i varje iteration av den yttre slingan.

Intressanta artiklar...