как получить все делители входных данных, используя их простые множители и кратности? - PullRequest
0 голосов
/ 07 октября 2019

Я пытался решить эту проблему в течение нескольких дней, но все еще не мог получить правильный вывод. проблема заключается в следующем, например, если я использую число 50, оно имеет list [2, 5] в качестве prime factors и соответствующие multiplicities из этих factors выглядят следующим образом [1, 2]

prime_factors = [2, 5]
multiplicities = [1, 2]

так что divisors должен иметь output [1, 2, 5, 10, 25, 50], но это только проблема, как мне создать function, который получает все divisors определенного input, используя его prime factorsи их соответствующие multiplicities?

1 Ответ

1 голос
/ 07 октября 2019

Что ж, вопрос в том, «как написать функцию», поэтому, возможно, вам помогут следующие советы:

  1. Получите простой пример . Вы уже выполнили эту часть - у вас есть ввод 50 (prime_factors = [2, 5] кратности = [1, 2]) и вывод [1, 2, 5, 10, 25, 50].
  2. Попробуйте поработать пример на бумаге шаг за шагом . - Просто попытайтесь выяснить, как результат получается из ввода. Например, 10 в выходном списке получается от 5 в prime_factors до степени 1 от кратностей, умноженных на 2 до степени 1 из кратностей. Попробуйте выяснить остальные элементы в списке вывода. Откуда берется 25 ?
  3. Придумайте сигнатуру функции . - Подумайте, какова минимальная информация, необходимая для определения результата, и какую форму должен иметь результат? Это должно быть легко, так как вы уже разместили и пример с четко определенными входами и выходами.
  4. Попробуйте обобщить шаги, которые вы сделали с примером. - Когда вы найдете решение для вашегоНапример, попробуйте подумать о другом. Как бы вы получили результат за 40 или 60? Можете ли вы использовать те же шаблоны, что и для 50?
  5. Написать псевдокод . - Напишите свою идею в стиле кода. При необходимости сделайте несколько циклов, назовите переменные, немного структурируйте свой код. Это должно привести к результату 4-го шага, но готово быть записанным в коде.
  6. Введите код . - Поскольку вы хотите программировать на Python, измените свой псевдокод на Python. Этот шаг может быть трудным в зависимости от ваших навыков, но если вы зайдете так далеко, люди здесь помогут вам с финишем.

Если вы застряли на любом из этих шагов, люди здесь с радостью помогут,нам просто нужно иметь какую-то отправную точку. Я бы порекомендовал записать каждый элемент в вывод и откуда он берется. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...