До сих пор у каждой функции было одно небольшое дело, и задача сама говорила, какое. Длинные задачи так не делают: они говорят, каким должен быть ответ, а как разделить работу, решаете вы. Такое разбиение называется декомпозицией, и это самая полезная привычка, которую можно приобрести на этой неделе.
Сверху вниз: сначала main
Вот задача:
Число называется дважды простым, если оно простое и сумма его цифр тоже простое число. Даны n чисел (1 ≤ n ≤ 1000, каждое от 1 до 10⁶). Выведите дважды простые числа в том порядке, в котором они даны, а потом их количество.
Прочитайте условие и подчеркните всё, что нужно проверить или вычислить:
простое ли число, сумма его цифр, дважды простое ли оно. Каждый такой пункт
станет функцией. Потом напишите main так, будто эти функции уже есть:
Теперь main настолько короткая, что её можно проверить одним взглядом. Осталось
три маленькие задачи, и каждую можно написать и проверить отдельно.
Вся программа:
Для чисел 23 13 29 31 47 89 10 она печатает 23 29 47 89 и 4. isDoublePrime —
это просто два помощника вместе: функция, собранная из функций. Пройдите по шагам
одно число и посмотрите, как main раздаёт работу: