Предмет: Информатика,
автор: Помогите957575
Напишите программу, которая находит все числа Армстронга из диапазона от A до B. Натуральное число из n цифр называется числом Армстронга, если сумма его цифр, возведенных в степень n, равна самому числу.
Ответы
Автор ответа:
0
// 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
[<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
Помогите957575:
Благодарю, только можно с for , while и if как-нибудь.
Похожие вопросы
Предмет: Русский язык,
автор: Eva140804
Предмет: Английский язык,
автор: gatvana
Предмет: Қазақ тiлi,
автор: Дворянкина
Предмет: Математика,
автор: Tonyashasss
Предмет: Геометрия,
автор: Аноним