Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2017, 17:37   #1
Young_programmer
Пользователь
 
Регистрация: 25.01.2017
Сообщений: 27
Вопрос Разложить на простые множители. Питон3

Помогите с кодом для разложения числа на простые множители!
Хочу разложить простым перебором. Перебрать числа от 2 до корня из заданного числа. Как правильно это описать в программе?
Мои попытки.
Код:
a=int(input())
i=2
while i*i<=a:
   i+=1
   if a%i==0:
      print(i)
Но программа неверна, что нужно учесть? И как указать, что рассматриваю только простые числа i?
Young_programmer вне форума Ответить с цитированием
Старый 08.03.2017, 18:10   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так неверность-то в чем проявляется?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.03.2017, 18:32   #3
Young_programmer
Пользователь
 
Регистрация: 25.01.2017
Сообщений: 27
По умолчанию

В том, что число 100 программа раскладывает на числа 4, 5, 10, а не на 2, 2, 5, 5.

Последний раз редактировалось Young_programmer; 08.03.2017 в 18:35.
Young_programmer вне форума Ответить с цитированием
Старый 08.03.2017, 18:54   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так тут просто ищутся числа от 3 до корня из a, которые являются делителями a.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.03.2017, 19:04   #5
Young_programmer
Пользователь
 
Регистрация: 25.01.2017
Сообщений: 27
По умолчанию

а как написать код правильно?)
Young_programmer вне форума Ответить с цитированием
Старый 08.03.2017, 19:09   #6
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Код:
i=2
while i*i<=n:
    while n%i==0:
        print(i)
        n//=i
    i+=1
if n>1: print(n)
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 08.03.2017, 19:39   #7
Young_programmer
Пользователь
 
Регистрация: 25.01.2017
Сообщений: 27
По умолчанию

Спасибо!
Young_programmer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в C++ разложить числа на простые множители? BESTолочь Помощь студентам 11 16.04.2018 10:37
Задача на Си разложить на простые множители Yacub Помощь студентам 5 23.10.2016 23:17
как разложить на множители ? blessedness777 C# (си шарп) 3 15.11.2012 19:07
разложить число на простые множители и вывести результат pakusya Паскаль, Turbo Pascal, PascalABC.NET 6 15.11.2008 03:07