Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
14 / 14 / 13
Регистрация: 05.07.2011
Сообщений: 233
1

Простая программа для поиска наибольшего просто делителя числа

13.05.2018, 09:16. Показов 2799. Ответов 2

Author24 — интернет-сервис помощи студентам
Сразу скажу, что я новичок в Python. Использую Python 3. Стоит задача найти максимальный простой делитель заданного числа. Посмотрел в инете, как грамотно это сделать. Вот код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import math
 
def primeFactors(n):
  arrOfPrimeFactors = []
  while (n % 2 == 0):
    n /= 2
  print("after while" + str(n))
  for i in range(3, int(math.sqrt(n)) +1, 2):
    while n % i == 0:
      arrOfPrimeFactors.append(i)
      n /= i
    
  if (n > 2):
    arrOfPrimeFactors.append(n)
 
  print(max(arrOfPrimeFactors))
Вопрос, собственно, такой: почему после первого же цикла while в функции n остаётся прежним, т.е. тем, которое было передано в функцию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2018, 09:16
Ответы с готовыми решениями:

Реализовать подпрограмму для поиска наибольшего общего делителя
Реализовать подпрограмму для поиска наибольшего общего делителя (НОД) двух целых чисел (наибольшее...

Программа для нахождения наибольшего общего делителя четырех натуральных чисел
Составить программу для нахождения наибольшего общего делителя четырех натуральных чисел....

Программа для поиска наименьшего общего делителя
Здравствуйте. Я начинающий программист, сейчас начал изучать (3 дня назад) с# Решил написать...

[I8085] Написать рекурсивный алгоритм поиска наибольшего общего делителя
i8085 Написать рекурсивный алгоритм поиска найбольшего общего делителя

2
1292 / 909 / 479
Регистрация: 05.12.2013
Сообщений: 3,074
13.05.2018, 10:30 2
Работает все, введи 640 и после while будет 5, но если число будет степенью двойки, то программа заверщится с ошибкой
1
14 / 14 / 13
Регистрация: 05.07.2011
Сообщений: 233
13.05.2018, 10:39  [ТС] 3
ТабуретY, ой, да-да, невнимателен, спасибо.
0
13.05.2018, 10:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2018, 10:39
Помогаю со студенческими работами здесь

Даны два натуральных числа. Создайте программу для определения наибольшего общего делителя этих чисел
Даны два натуральных числа. Создайте программу для определения наибольшего общего делителя этих...

Программа нахождения наибольшего общего делителя
Помогите, пожалуйста!!!! Составьте программу нахождения наибольшего общего делителя натуральных...

Программа вычисления наибольшего общего делителя двух целых чисел
Прошу помочь с задачей. Где у меня ошибка? Задача: напишите программу вычисления наибольшего...

Составьте программу вывода на экран наибольшего делителя натурального числа T , большего 1
помогите составить программу по следующим задачам 1. Составьте программу вывода на экран...

Реализовать рекурсивно нахождение наибольшего общего делителя числа по алгоритму Евклида
Реализовать рекурсивно нахождение наибольшего общего делителя (greatest common divisor) числа по...

Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида)
Доброго времени суток. Есть определенная функция определения НОД(наибольшего общего делителя)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru