fork download
  1. using System;
  2.  
  3. class ArmstrongNumbers
  4. {
  5. // Метод для обчислення кількості цифр у числі
  6. static int CalcNumberOfDigits(int number)
  7. {
  8. return number.ToString().Length;
  9. }
  10.  
  11. // Метод для обчислення суми цифр числа, піднесених до n-го степеня
  12. static int CalcSumOfDigitsPowers(int number, int power)
  13. {
  14. int sum = 0;
  15. int copy = number;
  16.  
  17. while (copy > 0)
  18. {
  19. int digit = copy % 10;
  20. sum += (int)Math.Pow(digit, power);
  21. copy /= 10;
  22. }
  23.  
  24. return sum;
  25. }
  26.  
  27. // Метод для перевірки, чи є число числом Армстронга
  28. static bool IsArmstrongNumber(int number)
  29. {
  30. int numDigits = CalcNumberOfDigits(number);
  31. int sumOfPowers = CalcSumOfDigitsPowers(number, numDigits);
  32.  
  33. return sumOfPowers == number;
  34. }
  35.  
  36. // Метод для виведення всіх чисел Армстронга в діапазоні [2, n]
  37. static void PrintAllArmstrongNumbers(int n)
  38. {
  39. Console.WriteLine($"Числа Армстронга в діапазоні [2,{n}]:");
  40. for (int i = 2; i <= n; i++)
  41. {
  42. if (IsArmstrongNumber(i))
  43. {
  44. Console.WriteLine(i);
  45. }
  46. }
  47. }
  48.  
  49. static void Main()
  50. {
  51. Console.Write("Введіть n: ");
  52. int n = int.Parse(Console.ReadLine());
  53.  
  54. PrintAllArmstrongNumbers(n);
  55. }
  56. }
  57.  
Success #stdin #stdout 0.02s 24288KB
stdin
10
stdout
Введіть n: Числа Армстронга в діапазоні [2,10]:
2
3
4
5
6
7
8
9