Напишите программу, которая находит все числа армстронга из диапазона от a до b. натуральное число из n цифр называется числом армстронга, если сумма его цифр, возведенных в степень n, равна самому числу.
// F# [<EntryPoint>] let main argv = let rec ( ** ) x n = match n < 1 with | true -> 1 | false -> x * (x ** (n-1)) let rec sumDigits x = match x with | x when x < 10 -> (x, 1) | x -> let res = x / 10 |> sumDigits ((res |> fst) + (x % 10), (res |> snd) + 1) let isArmstrong x = let digitsInfo = sumDigits x x = (fst digitsInfo) ** (snd digitsInfo) let a = System.Console.ReadLine() |> System.Int32.Parse let b = System.Console.ReadLine() |> System.Int32.Parse let result = [a..b] |> List.filter (isArmstrong) printf "Result: %A" result System.Console.ReadKey true |> ignore 0
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку