Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.PrintStream;
- import java.util.Scanner;
- public class Lab2 {
- static PrintStream ps = new PrintStream(System.out);
- static Scanner scan = new Scanner(System.in);
- public static void main(String args[]) {
- int k, border;
- ps.println("Программа выводит все натуральные числа, которые в k раз больше суммы своих цифр.");
- k = inputK();
- border = searchBorder(k);
- ps.println("Искомые числа:");
- printAllResultNumbers(k, border);
- }
- public static int inputK() {
- int k;
- boolean isNotCorrect;
- k = 0;
- ps.println("Введите k в диапазоне [1; 200 000]:");
- do {
- isNotCorrect = false;
- try {
- k = Integer.parseInt(scan.nextLine());
- }
- catch (NumberFormatException err) {
- ps.println("Ошибка ввода. Введите натуральное число в промежутке [1; 200 000]:");
- isNotCorrect = true;
- }
- if ((k < 1) || (k > 200000)) {
- ps.println("Ошибка ввода. Введите натуральное число в промежутке [1; 200 000 ]:");
- isNotCorrect = true;
- }
- } while (isNotCorrect);
- return k;
- }
- public static int searchBorder(int k)
- {
- int pot;
- pot = 1;
- for (int i = 1; i <= 10; i++) {
- if (pot > 9 * i * k) {
- return pot;
- }
- pot = pot * 10;
- }
- return 0;
- }
- public static void printAllResultNumbers(int k, int border)
- {
- for (int i = 1; i <= border; i++) {
- if (i == k * countSumNumbers(i)) {
- ps.println(i);
- }
- }
- }
- public static int countSumNumbers(int number)
- {
- int sum;
- sum = 0;
- while (number != 0) {
- sum = sum + number % 10;
- number = number / 10;
- }
- return sum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement