Advertisement
MrGhost75

TripleSimpleNumbers

Oct 1st, 2020 (edited)
715
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.25 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class Test {
  6.     public static void main(String[] args) throws IOException {
  7.  
  8.         //Будем называть натуральное число трипростым, если в нем любые подряд идущие 3 цифры образуют трехзначное простое число.
  9.         //Требуется найти количество N-значных трипростых чисел.
  10.  
  11.  
  12.         //Определение количества знаков из консоли.
  13.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  14.         System.out.print("Сколько знаков будет в ваших числах?\nОтвет: ");
  15.         int n = Integer.parseInt(reader.readLine());
  16.  
  17.         //Проверка на вводимое число.
  18.         while(n <= 2) {
  19.             System.out.println("\nОй, вы ввели неподходящее число, минимальное количество знаков - 3.");
  20.             System.out.print("Попробуйте снова: ");
  21.             n = Integer.parseInt(reader.readLine());
  22.         }
  23.  
  24.  
  25.         //Перебор всех n-значных чисел и разбиение каждого на цифры с занесением последних в массив.
  26.         int counter = 0;
  27.         //System.out.println("Все трипростые " + n + "-значные числа: ");
  28.         for (int number = (int)Math.pow(10, n-1); number < (int)Math.pow(10, n); number++) {
  29.             int[] array = digitsInNumber(number, n);
  30.             if (isTripleSimple(array)) {
  31.                 //System.out.println(number);
  32.                 counter++;
  33.             }
  34.         }
  35.         System.out.println("Количество трипростых " + n + "-значных чисел: " + counter);
  36.     }
  37.  
  38.     //Функция разбиения числа на массив из цифр этого числа.
  39.     public static int[] digitsInNumber(int number, int amountOfDigits) {
  40.  
  41.         int[] array = new int[amountOfDigits];
  42.  
  43.         for (int i = amountOfDigits - 1; i >= 0 && number>0; i--, number/=10) {
  44.             array[i] = number % 10;
  45.         }
  46.  
  47.         return array;
  48.     }
  49.  
  50.     //Функция, определяющая, является ли число трипростым.
  51.     public static boolean isTripleSimple(int[] array) {
  52.         boolean isTripleSimple = false;
  53.         for (int i = 0; i < array.length-2; i++) {
  54.             String sNumber = "";
  55.             sNumber += array[i];
  56.             sNumber += array[i+1];
  57.             sNumber += array[i+2];
  58.             int tempNumber = Integer.parseInt(sNumber);
  59.             if(tempNumber >= 100 && isSimple(tempNumber)) isTripleSimple = true;
  60.             else return false;
  61.         }
  62.         return isTripleSimple;
  63.     }
  64.  
  65.     //Функция проверки простоты числа.
  66.     public static boolean isSimple (int number) {
  67.         int temp;
  68.         for (int i=2; i<=number/2; i++) {
  69.             temp = number % i;
  70.             if (temp == 0) {
  71.                 return false;
  72.             }
  73.         }
  74.         return true;
  75.     }
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement