Dördrəqəmli Armstrong ədədləri#8642

Dördrəqəmli Armstrong ədədləri (Həll təhlili)

Məsələnin icrasını yerinə yetirmək üçün -dan -yə qədər olan rəqəmləri yoxlayaq. Hər bir rəqəm üçün i = \overline{xyzu}~(a ≤ i ≤ b) rəqəmlərinin minlik , yüzlük , onluq və birlik rəqəmlərini ayırmaq lazımdır. Əgər rəqəmi Armstrong rəqəmidirsə (i = x^4 + y^4 + z^4 + u^4), onu çap edirik.

Algoritmin tətbiqi

İlk növbədə, daxil edilən verilənləri oxuyuruq.

scanf("%d %d", &a, &b);

-dan -yə qədər olan rəqəmləri yoxlayırıq.

for (i = a; i <= b; i++)
{

i = \overline{xyzu} rəqəminin rəqəmlərini ayıraq.

  x = a / 1000;
  y = i / 100 % 10;
  z = i / 10 % 10;
  u = i % 10;

Əgər Armstrong rəqəmidirsə (i = x^4 + y^4 + z^4 + u^4), onu çap edirik.

  if (x * x * x * x + y * y * y * y + z * z * z * z + 
      u * u * u * u == i) printf("%d ", i);
}

printf("\n");

Python tətbiqi

Daxil edilən verilənləri oxuyuruq.

a, b = map(int, input().split())

-dan -yə qədər olan rəqəmləri yoxlayırıq.

for i in range(a, b + 1):

i = \overline{xyzu} rəqəminin rəqəmlərini ayıraq.

  x = i // 1000
  y = (i // 100) % 10
  z = (i // 10) % 10
  u = i % 10

Əgər Armstrong rəqəmidirsə (i = x^4 + y^4 + z^4 + u^4), onu çap edirik.

  if x**4 + y**4 + z**4 + u**4 == i:
    print(i, end=" ")

print()