Приветствую Вас Гость | RSS

Delphi заготовки

Воскресенье, 12.05.2024, 21:36
Главная » 2012 » Май » 17 » Находим числа Армстронга Pascal
08:09
Находим числа Армстронга Pascal
Процедура проверки числа. является ли число числом
теория

Самовлюблённое число
, или совершенный цифровой инвариант (англ. pluperfect digital invariant, PPDI) или число Армстронга — натуральное число, которое в данной системе счисления равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Иногда чтобы считать число таковым, достаточно, чтобы степени, в которые возводятся цифры, были равны m — тогда число можно назвать m-самовлюблённым.

Например, десятичное число 153 — число Армстронга, потому что:

1³ + 5³ + 3³ = 153

«Есть только четыре числа, исключая единицу, которые равны сумме кубов своих цифр:
153=1^3+5^3+3^3
370=3^3+7^3+0^3
 371=3^3+7^3+1^3
и 407=4^3+0^3+7^3.


практика


{1. Числом Армстронга называется целое n-значное число,
сумма n-х степеней цифр которого равна самому этому числу.
Например, числом Армстронга является число 407,
так как 407 = 4 в 3 степени + 0в 3 степени + 7 в 3 степени.
Найдите все числа Армстронга для заданного n <= 10.
}
// uses math; // для функции power (возведение в степень)
uses crt;

// функция проверки числа Армстронга;
    Function GetShisloAmstrong(Value:integer):boolean;
      var a1,x,y:integer;
      m:array [1..10] of byte;
      sum:integer;
    begin
    a1:=value;
    y:=1;
    sum:=0;
       while (a1 div 10) <> 0 do begin
          m[y]:=a1 mod 10; // массив чисел
          a1:=a1 div 10;
          Y:=y+1;
       end;
          m[y]:=a1 mod 10;
          // определяем кол-во числе в числе
          for X:=1 to y do
           sum:=sum+round(power(m[x],y));
          GetShisloAmstrong:=sum=value;
    end;
var n,x:integer;
     first:boolean;
Begin
Clrscr;

  for n:=1 to 10 do begin first:=true;
  for X:=round(power(10,n-1)) to round(power(10,n)) do begin

    if GetShisloAmstrong(x) then begin
     if first then writeln('Для N = ',n);
     first:=false;
    writeln(x);
    end;
    end;
  end;
 
end.



ответ

Для N = 1
1
2
3
4
5
6
7
8
9
Для N = 3
153
370
371
407
Для N = 4
1634
8208
9474
Для N = 5
54748
92727
93084
Для N = 6
548834
Для N = 7
1741725
4210818
9800817
9926315
Для N = 8
24678050
24678051

Просмотров: 6245 | Добавил: NetSoftWare | Рейтинг: 3.0/2
Всего комментариев: 0
Имя *:
Email *:
Код *: