deced

Untitled

Oct 25th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.     static byte getN() {
  6.         Scanner scanner = new Scanner(System.in);
  7.         boolean isIncorrect;
  8.         byte ret = 0;
  9.         String inputLine;
  10.         do {
  11.             isIncorrect = false;
  12.             System.out.println("Введите N");
  13.             inputLine = scanner.nextLine();
  14.             try {
  15.                 ret = Byte.parseByte(inputLine);
  16.             } catch (Exception ex) {
  17.                 System.out.println("N должно быть числом");
  18.                 isIncorrect = true;
  19.             }
  20.             if ((ret < 1) || (ret > 64) && !isIncorrect) {
  21.                 System.err.println("N должно быть целым числом большим нуля и меньшим 65");
  22.                 isIncorrect = true;
  23.             }
  24.         } while (isIncorrect);
  25.         return ret;
  26.     }
  27.  
  28.     static void printArray(ArrayList<Long> arrayToPrint) {
  29.         System.out.println("Числа мерсена равны");
  30.         for (int i = 0; i < arrayToPrint.size(); i++) {
  31.             System.out.println(arrayToPrint.get(i));
  32.         }
  33.     }
  34.  
  35.     static ArrayList<Integer> getPrimes(int n) {
  36.         ArrayList<Integer> primes = new ArrayList<Integer>();
  37.         for (int i = 1; i < n; i++)
  38.             primes.add(i + 1);
  39.         for (int i = 1; i < primes.size(); i++)
  40.             if (primes.get(i) != 0)
  41.                 for (int j = i + 1; j < primes.size(); j++)
  42.                     if (primes.get(j) % primes.get(i) == 0)
  43.                         primes.remove(j);
  44.         return primes;
  45.  
  46.     }
  47.  
  48.     static void GetMersennePrimes() {
  49.         int n;
  50.         n = getN();
  51.         ArrayList<Integer> primes = getPrimes(n);
  52.         ArrayList<Long> mersennePrimes = new ArrayList<Long>();
  53.         for (int i = 0; i < primes.size(); i++) {
  54.             mersennePrimes.add((long) (Math.pow(2, primes.get(i)) - 1));
  55.         }
  56.         printArray(mersennePrimes);
  57.     }
  58.  
  59.     public static void main(String[] args) {
  60.         GetMersennePrimes();
  61.     }
  62.  
  63. }
  64.  
Add Comment
Please, Sign In to add comment