Advertisement
Guest User

ege25-java

a guest
May 9th, 2022
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.94 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         //Выводим все делители числа 123
  6.         System.out.println(divs(123));
  7.  
  8.         //Непосредственно само решение к заданию https://otvet.mail.ru/question/229057174
  9.         for(int i=35_000_000; i<=40_000_000; i++) {
  10.             Set<Integer> divs = divs(i);
  11.             int count neChet = 0;
  12.             for(int n : divs)
  13.                 if(n % 2 != 0)
  14.                     neChet++;
  15.             if(neChet == 5)
  16.                 System.out.println(i);
  17.         }
  18.     }
  19.  
  20.     //Функция для поиска делителей, n - число, делители которого ищем
  21.     public Set<Integer> divs(int n) {
  22.         //Создаем множество, где будут только уникальные делители, ведь нам не нужен повтор, если число будет нацело извлекаться из корня
  23.         Set<Integer> divs = new HashSet<>();
  24.         //Итерируем до корня из числа, почему так: читать *¹ https://otvet.mail.ru/question/229057174
  25.         for(int i=1; i <= Math.sqrt(n); i++)
  26.             //Проверяем, делится ли наше число n на число i, посредством получения остатка (число будет делиться на число нацело, если остаток равен 0)
  27.             if(n % i == 0) {
  28.                 //Если n делится на i, тогда мы заносим это число во множество
  29.                 divs.add(i);
  30.                 //Заносим вторую пару от деления, читать *² https://otvet.mail.ru/question/229057174
  31.                 divs.add(n / i);
  32.             }
  33.         //Возращаем наши делители
  34.         return divs;
  35.     }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement