Advertisement
Eugene0091

Untitled

Oct 22nd, 2019
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. package com.company;
  2. import java.io.*;
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6. public static int IsCorrectInput(int Number, int Min, int Max) {
  7. boolean IsCorrect = true;
  8. Scanner scan = new Scanner(System.in);
  9. do {
  10. try {
  11. Number = scan.nextInt();
  12. if ((Number > Min - 1) && (Number < Max + 1)) {
  13. IsCorrect = false;
  14. } else {
  15. System.out.println("Error! Enter a number. The number must be between " + Min + " and " + Max + "!");
  16. }
  17. } catch (Exception e){
  18. System.out.println("Error! Enter a number: ");
  19. scan.next();
  20. }
  21. } while(IsCorrect);
  22. IsCorrect = true;
  23. return Number;
  24. }
  25.  
  26. public static void OutputConsole(int[] Number) {
  27. int i = 0;
  28. while(i < Number.length) {
  29. System.out.println(Number[i] + " | " + Number[i + 1]);
  30. i = i + 2;
  31. }
  32. }
  33.  
  34. public static int div(int number) {
  35. int sum = 0;
  36. for (int i = 1; i < number; i++) sum += (number % i) == 0 ? i : 0;
  37. return sum;
  38. }
  39.  
  40. public static int [] FindFriendshipNumbers(int Range) {
  41. int[] array = new int[Range];
  42. int a = 0;
  43. int[] Result = new int[a];
  44. for (int i = 1; i < Range + 1; i++) {
  45. int div = div(i);
  46. if (div < Range + 1 && array[div] == i)
  47. Result[a] = div;
  48. a = a + 1;
  49. Result[a] = i;
  50. array[i] = div;
  51. }
  52. return Result;
  53. }
  54.  
  55.  
  56. public static void OutputFile(int[] Number) throws IOException {
  57. int i = 0;
  58. BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\Eugene\\Desktop\\java\\Output.txt"));
  59. while (i < Number.length) {
  60. writer.write(Number[i] + " | " + Number[i + 1]);
  61. i = i + 2;
  62. }
  63. writer.close();
  64. }
  65.  
  66. public static int InputFile() {
  67. boolean isInvalidInput;
  68. int number = 0;
  69. do {
  70. isInvalidInput = false;
  71. try {
  72. BufferedReader input = new BufferedReader(new FileReader("C:\\Users\\Eugene\\Desktop\\java\\Input.txt"));
  73. String text;
  74. while ((text = input.readLine()) != null) {
  75. number = Integer.parseInt(text);
  76. }
  77. if (number < 2) {
  78. System.out.println("Ошибка! Число, находящееся в файле, не является натуральным. Пожалуйста, проверьте файл и повторите попытку.");
  79. isInvalidInput = true;
  80. }
  81. input.close();
  82. } catch (FileNotFoundException e) {
  83. System.out.println(" l");
  84. isInvalidInput = true;
  85. } catch (IOException e) {
  86. System.out.println(" 2");
  87. isInvalidInput = true;
  88. } catch (NumberFormatException e) {
  89. System.out.println("Ошибка! Файл содержит неверные данные. Пожалуйста, проверьте файл и повторите попытку.");
  90. isInvalidInput = true;
  91. }
  92. } while (isInvalidInput);
  93. return number;
  94. }
  95.  
  96. public static char GetUserChoice() {
  97. System.out.println("Do you want to read fromm file?[Y/N]");
  98. Scanner sc = new Scanner(System.in);
  99. char Choice = sc.next().charAt(0);
  100. return Choice;
  101. }
  102.  
  103. public static void main(String[] args) throws IOException {
  104. char Answer;
  105. int Range = 0;
  106. int [] Result = new int[0];
  107. System.out.println("This program finds pairs of friendly numbers.");
  108. Answer = GetUserChoice();
  109. if (Answer == 'Y') {
  110. Range = InputFile();
  111. System.out.println(Range);
  112. } else{
  113. System.out.println("Enter the upper limit of the friendly number search range.");
  114. System.out.println("The number must be up to 10.000 !");
  115. Range = IsCorrectInput(Range, 2, 10000);
  116. }
  117. Result = FindFriendshipNumbers(Range);
  118. OutputConsole(Result);
  119. OutputFile(Result);
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement