Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
1 / 1 / 1
Регистрация: 27.01.2015
Сообщений: 77

Факторизация чисел

27.06.2022, 08:43. Показов 3145. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
# Написать метод count_find_num, который принимает на вход список простых множителей (primesL) и целое число,
# предел (limit), после чего попробуйте сгенерировать по порядку все числа.
# Меньшие значения предела, которые имеют все и только простые множители простых чисел primesL.
#
# primesL = [2, 5, 7]
# limit = 500
# List of Numbers Under 500 Prime Factorization
# ________________________________________ ___________________
# 70 [2, 5, 7]
# 140 [2, 2, 5, 7]
# 280 [2, 2, 2, 5, 7]
# 350 [2, 5, 5, 7]
# 490 [2, 5, 7, 7]
#
# Скопировать
# 5 из этих чисел меньше 500, а самое большое из них 490.

У меня возникла проблема с технической реализацией следующего момента - как мне проверить, что все простые множители у проверяемого числа совпадают с теми, что ранее ввели с клавиатуры и убрать те, которые не подходят под такое условие. Не могу определиться, как сделать оптимальнее. Сейчас у меня появляются в итоговой сборке числа, у которых присутствуют простые множители, не вводимые с клавиатуры:

70 [2, 5, 7] 140 [2, 2, 5, 7] 210 [3, 2, 5, 7] 280 [2, 2, 2, 5, 7] 350 [2, 5, 5, 7] 490 [2, 5, 7, 7]

На данный момент у меня вот такой код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def count_find_num(primesL, limit):
    primes = []
    primes_new = []
    Primescount = 1
    Max_primes = 0
    for i in range(0, len(primesL)):
        Primescount *= primesL[i]
    for i in range(0, limit):
        primes.append(i)
    for i in range(0, limit-1):
        if primes[i] != 0 and primes[i] % Primescount == 0:
            primes_new.append(primes[i])
    for i in range(1, (len(primes_new)-1)):
        if primes_new[i] > primes_new[i-1]:
            Max_primes = primes_new[i]
    return [len(primes_new)-1, Max_primes]
 
primesL = list(map(int, input().split()))
limit = int(input())
print(count_find_num(primesL, limit))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2022, 08:43
Ответы с готовыми решениями:

Факторизация чисел
Задача описана на картинке. Я написал вроде как рабочий алгоритм, но он долго выполняется и поэтому не проходит проверки. Нужно помочь с...

Факторизация целых чисел
Здравствуйте, подскажите по коду def primfacs(n): i = 2 primfac = #зачем нужна такая проверка? while i * i <=...

Факторизация больших чисел
Товарищи, ни у кого не завалялось добротной реализации какого-нибудь (лучше экспоненциального) метода факторизации для "взрослых"...

2
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,245
Записей в блоге: 4
27.06.2022, 11:14
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def primfacs(n):
    i = 2
    primfac = []
    while i * i <= n:
        while n % i == 0:
            primfac.append(i)
            n = n / i
        i = i + 1
    if n > 1:
        primfac.append(int(n))
    return primfac
 
def count_find_num(a, b):
    for i in range(2, b+1):
        d = primfacs(i)
        if set(a).issubset(set(d)): 
            print(i, d)
 
 
primesL = [2, 3, 5]
limit = 490
 
count_find_num(primesL, limit)
Тут можно еще поэкспериментировать с методами множества
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
27.06.2022, 14:19
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
delit = [2,3,5,7,11,13]
cntr = 1e6
 
k = 1
res = {}
for i in delit:
    k *= i
res[k] = delit[:]
 
while True:
    flag = True
    for d in delit:
        for k in list(res):
            if k*d < cntr+1 and k*d not in res:
                res[k*d] = res.get(k) + [d]
                flag = False
    if flag:
        break
 
for k in sorted(res):
    print(k, sorted(res[k]))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.06.2022, 14:19
Помогаю со студенческими работами здесь

Факторизация целых чисел(Оптимизировать)
Добрый день, ув. пользователи! Слишком долго отрабатывает при больших числах. Какие есть идеи оптимизации? Факториза́цией...

Факторизация чисел <=1*10^9 быстрее, чем за 1 секунду
В общем - сабж Есть два числа n и m Вот мой алгоритм факторизации (попутно засовывая их в массивы) j:=1; i:=2; k:=1; ...

Факторизация неограниченных чисел детерминированным методом
У меня вопрос: Можно ли найти на форуме программиста для написания программы по методике &quot;Факторизация неограниченных чисел...

Факторизация больших целых чисел по теореме Ферма
Доброго времени суток , помогите пожалуйста разобраться с факторизацией чисел. Можно какую-то блок схему или пример реализации(желательно...

LU факторизация
Доброго времени суток, помогите пожалуйста написать программу решения линейных алгебраических уравнений методом LU факторизации если...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru