Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Main {
- static byte getN() {
- Scanner scanner = new Scanner(System.in);
- boolean isIncorrect;
- byte ret = 0;
- String inputLine;
- do {
- isIncorrect = false;
- System.out.println("Введите N");
- inputLine = scanner.nextLine();
- try {
- ret = Byte.parseByte(inputLine);
- } catch (Exception ex) {
- System.out.println("N должно быть числом");
- isIncorrect = true;
- }
- if ((ret < 1) || (ret > 64) && !isIncorrect) {
- System.err.println("N должно быть целым числом большим нуля и меньшим 65");
- isIncorrect = true;
- }
- } while (isIncorrect);
- return ret;
- }
- static void printArray(ArrayList<Long> arrayToPrint) {
- System.out.println("Числа мерсена равны");
- for (int i = 0; i < arrayToPrint.size(); i++) {
- System.out.println(arrayToPrint.get(i));
- }
- }
- static ArrayList<Integer> getPrimes(int n) {
- ArrayList<Integer> primes = new ArrayList<Integer>();
- for (int i = 1; i < n; i++)
- primes.add(i + 1);
- for (int i = 1; i < primes.size(); i++)
- if (primes.get(i) != 0)
- for (int j = i + 1; j < primes.size(); j++)
- if (primes.get(j) % primes.get(i) == 0)
- primes.remove(j);
- return primes;
- }
- static void GetMersennePrimes() {
- int n;
- n = getN();
- ArrayList<Integer> primes = getPrimes(n);
- ArrayList<Long> mersennePrimes = new ArrayList<Long>();
- for (int i = 0; i < primes.size(); i++) {
- mersennePrimes.add((long) (Math.pow(2, primes.get(i)) - 1));
- }
- printArray(mersennePrimes);
- }
- public static void main(String[] args) {
- GetMersennePrimes();
- }
- }
Add Comment
Please, Sign In to add comment