В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
blueocean2016
blueocean2016
15.02.2023 22:01 •  Информатика

Напишите программу, которая находит все числа армстронга из диапазона от a до b. натуральное число из n цифр называется числом армстронга, если сумма его цифр, возведенных в степень n, равна самому числу.

Показать ответ
Ответ:
Wishnewski
Wishnewski
02.10.2020 12:18
// 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 Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота