Задача
Задача из сборника задач по программированию Абрамова С.А. 2000 г.
Даны натуральные числа $n$, $m$. Получить все меньшие натуральные числа, квадрат суммы цифр которых равен $m$.
Входные данные
Два положительных числа $n$ и $m$.
Выходные данные
Все целые числа из $\left ( 0, n \right )$, удовлетворяющие условию.
Тесты
Входные данные | Выходные данные |
$1234 \ 9$ | $3 \ 12 \ 21 \ 30 \ 102 \ 111 \ 120 \ 201 \ 210 \ 300 \ 1002 \ 1011 \ 1020 \ 1101 \ 1110 \ 1200$ |
$100 \ 4$ | $2 \ 11 \ 20$ |
$49 \ 49$ | $7 \ 16 \ 25 \ 34 \ 43$ |
$1000 \ 1$ | $1 \ 10 \ 100$ |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.Scanner; public class Main { public static void main (String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int m = scanner.nextInt(); for(int i=1; i<n; i++) { int a=i; int sum=0; while(a!=0) { sum+=a%10; a/=10; } if(sum*sum==m) System.out.print(i+" "); } } } |
Решение задачи
Находим сумму цифр каждого числа от $1$ до $n$, проверяя равняется ли эта сумма, возведенная в квадрат, числу $m$. В случае положительного ответа, выводим число, сумму цифр которого мы проверяли.
Ссылки
Условие задачи (страница 135)
Код решения