Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.*;
- import java.util.Scanner;
- public class Main {
- public static int IsCorrectInput(int Number, int Min, int Max) {
- boolean IsCorrect = true;
- Scanner scan = new Scanner(System.in);
- do {
- try {
- Number = scan.nextInt();
- if ((Number > Min - 1) && (Number < Max + 1)) {
- IsCorrect = false;
- } else {
- System.out.println("Error! Enter a number. The number must be between " + Min + " and " + Max + "!");
- }
- } catch (Exception e){
- System.out.println("Error! Enter a number: ");
- scan.next();
- }
- } while(IsCorrect);
- IsCorrect = true;
- return Number;
- }
- public static void OutputConsole(int[] Number) {
- int i = 0;
- while(i < Number.length) {
- System.out.println(Number[i] + " | " + Number[i + 1]);
- i = i + 2;
- }
- }
- public static int div(int number) {
- int sum = 0;
- for (int i = 1; i < number; i++) sum += (number % i) == 0 ? i : 0;
- return sum;
- }
- public static int [] FindFriendshipNumbers(int Range) {
- int[] array = new int[Range];
- int a = 0;
- int[] Result = new int[a];
- for (int i = 1; i < Range + 1; i++) {
- int div = div(i);
- if (div < Range + 1 && array[div] == i)
- Result[a] = div;
- a = a + 1;
- Result[a] = i;
- array[i] = div;
- }
- return Result;
- }
- public static void OutputFile(int[] Number) throws IOException {
- int i = 0;
- BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\Eugene\\Desktop\\java\\Output.txt"));
- while (i < Number.length) {
- writer.write(Number[i] + " | " + Number[i + 1]);
- i = i + 2;
- }
- writer.close();
- }
- public static int InputFile() {
- boolean isInvalidInput;
- int number = 0;
- do {
- isInvalidInput = false;
- try {
- BufferedReader input = new BufferedReader(new FileReader("C:\\Users\\Eugene\\Desktop\\java\\Input.txt"));
- String text;
- while ((text = input.readLine()) != null) {
- number = Integer.parseInt(text);
- }
- if (number < 2) {
- System.out.println("Ошибка! Число, находящееся в файле, не является натуральным. Пожалуйста, проверьте файл и повторите попытку.");
- isInvalidInput = true;
- }
- input.close();
- } catch (FileNotFoundException e) {
- System.out.println(" l");
- isInvalidInput = true;
- } catch (IOException e) {
- System.out.println(" 2");
- isInvalidInput = true;
- } catch (NumberFormatException e) {
- System.out.println("Ошибка! Файл содержит неверные данные. Пожалуйста, проверьте файл и повторите попытку.");
- isInvalidInput = true;
- }
- } while (isInvalidInput);
- return number;
- }
- public static char GetUserChoice() {
- System.out.println("Do you want to read fromm file?[Y/N]");
- Scanner sc = new Scanner(System.in);
- char Choice = sc.next().charAt(0);
- return Choice;
- }
- public static void main(String[] args) throws IOException {
- char Answer;
- int Range = 0;
- int [] Result = new int[0];
- System.out.println("This program finds pairs of friendly numbers.");
- Answer = GetUserChoice();
- if (Answer == 'Y') {
- Range = InputFile();
- System.out.println(Range);
- } else{
- System.out.println("Enter the upper limit of the friendly number search range.");
- System.out.println("The number must be up to 10.000 !");
- Range = IsCorrectInput(Range, 2, 10000);
- }
- Result = FindFriendshipNumbers(Range);
- OutputConsole(Result);
- OutputFile(Result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement