PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): « 1 [2]

> Найдено сообщений: 16
Mandalorian Отправлено: 07 Сентября, 2021 - 17:58:33 • Тема: Получить собственные делители числа, являющиеся простыми числами • Форум: Вопросы новичков

Ответов: 4
Просмотров: 815
Здравствуйте! Сейчас учусь. Возникло сомнение в решении задачи.

Дано число. Необходимо получить все собственные делители этого числа, являющиеся простыми числами.

Дана функция.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function getPrimeDivisors($num) {
  4.         $result = [];
  5.         $divs = getOwnDivisors($num);
  6.        
  7.         foreach ($divs as $div) {
  8.                 if (isPrime($div)) {
  9.                         $result[] = $div;
  10.                 }
  11.         }
  12.                
  13.         return $result;
  14. }
  15.  


Необходимо написать реализацию вспомогательных функций.

В свою очередь я написал такой код:
PHP:
скопировать код в буфер обмена
  1.  
  2. function getOwnDivisors($num){
  3.                 for($i = 1; $i <= $num; $i++){
  4.                         if($num % $i === 0) {
  5.                                 $arr[] = $i;
  6.                         }
  7.                 }
  8.                 return $arr;
  9.         }
  10.  
  11.         function isPrime($num) {
  12.                 for($i = 2; $i < $num; $i++){
  13.                         if($num % $i === 0) {
  14.                                 return false;
  15.                         }
  16.                 }
  17.                 return true;
  18.         }
  19.  
  20. var_dump(getPrimeDivisors(...));
  21.  


Есть несколько вопросов. Первый - все ли правильно в этом коде, и если не все то что неправильно?

Второй - почему, кода я передаю в основную функцию дробное число, то она все равно ведет себя как с простыми числами? Например, передал в функцию число 23,25 а функция возвращает массив с делителями 1 и 23.

Третий - например возьмем число 12. Функция выдаст массив с числами 1,2,3. Куда подевались 6 и 12? Если же возьмем число 19 - то массив будет из чисел 1 и 19. Почему так происходит?

Страниц (2): « 1 [2]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB