С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/411: Рейтинг темы: голосов - 411, средняя оценка - 4.67
1 / 0 / 1
Регистрация: 04.03.2020
Сообщений: 4
1

Наименьший простой делитель

18.03.2020, 20:12. Показов 75762. Ответов 9

Author24 — интернет-сервис помощи студентам
Условие.
Дано целое положительное число N≤2∗109, не меньшее 2. Выведите его наименьший простой делитель.
Я перепробовала кучу вариантов, все на одном из тестов показывают время больше секунды. Наилучший результат вот с этим кодом:
Python
1
2
3
4
5
6
7
n=int(input())
ans=1
a=1
while a!=0:
    ans+=1
    a*=n%ans
print(ans)
Результат 1,086, с остальными получается больше.
Помогите ускорить работу кода. Можно использовать if/else, while, for.
Самые простые варианты были, типа
Python
1
2
3
4
5
n = int(input())
i = 2
while n%i != 0:
    i += 1
print(i)
Нечётные отдельно выносила, первые несколько простых чисел прописывала. For нормально приставить куда-либо не получается, хотя может с ним у кого-нибудь получится.
Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2020, 20:12
Ответы с готовыми решениями:

Наименьший простой делитель
Дано целое число, не меньшее 2. Выведите его наименьший простой делитель. Мой код: def...

Наименьший простой делитель числа
Дано целое число, не меньшее 2. Выведите его наименьший простой делитель. На вход целое число N<=...

Наименьший простой делитель данного натурального числа
# TASK # Найти наименьший простой делитель данного натурального числа. a = int (input...

Цикл for. Наименьший делитель
Минимальный простой делитель Дано целое число, не меньшее 2. Выведите его наименьший простой...

9
Status 418
Эксперт Python
4580 / 2348 / 601
Регистрация: 26.11.2017
Сообщений: 5,264
Записей в блоге: 3
18.03.2020, 20:16 2
проверяйте до корня из n.
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
37423 / 20795 / 4280
Регистрация: 12.02.2012
Сообщений: 34,208
Записей в блоге: 14
18.03.2020, 20:25 3
Лучший ответ Сообщение было отмечено Alechka07 как решение

Решение

Alechka07, верхняя граница числа какая? 2*109=218

Добавлено через 6 минут
Как вариант:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def is_prime(n):
    i=3
    while(i*i<=n):
        if n%i==0:
            return False
        i+=1
    return True
    
n=int(input())
 
if n%2==0:
    print(2)
else:
    i=3
    while(True):
        if is_prime(i) and n%i==0:
            print(i)
            break
        else:
            i+=2
2
1 / 0 / 1
Регистрация: 04.03.2020
Сообщений: 4
18.03.2020, 21:02  [ТС] 4
Catstail, извините, не заметила. 2*10**9.
Ваш вариант тоже не подходит. Во-первых, опять на том же тесте не проходит по времени. А во-вторых, эту задачу мне нужно в курс, а там мы ещё не проходили ни def, ни return, ни break. Только через input, переменные, условные операторы if/else, циклы for и while
0
Status 418
Эксперт Python
4580 / 2348 / 601
Регистрация: 26.11.2017
Сообщений: 5,264
Записей в блоге: 3
18.03.2020, 21:07 5
Лучший ответ Сообщение было отмечено Alechka07 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
i = 2
flag = True
while i*i <= n:
    if n % i == 0:
        print(i)
        flag = False
        break
    i += 1
if flag:
    print(n)
7
1 / 0 / 1
Регистрация: 04.03.2020
Сообщений: 4
18.03.2020, 23:00  [ТС] 6
Catstail, eaa, огромное спасибо за помощь
0
8 / 8 / 0
Регистрация: 15.02.2020
Сообщений: 195
09.07.2020, 14:20 7
eaa, почему
Цитата Сообщение от eaa Посмотреть сообщение
while i*i <= n:
я просто не понимаю почему многие так пишут
0
Status 418
Эксперт Python
4580 / 2348 / 601
Регистрация: 26.11.2017
Сообщений: 5,264
Записей в блоге: 3
09.07.2020, 14:39 8
Потому что возвести в квадрат быстрее чем вычислить квадратный корень
0
8 / 8 / 0
Регистрация: 15.02.2020
Сообщений: 195
09.07.2020, 17:24 9
eaa, а для чего возводить в квадрат или вычислять квадратный корень?
0
4 / 4 / 0
Регистрация: 13.03.2021
Сообщений: 19
13.03.2021, 21:45 10
Как-то так:

Python
1
2
3
4
5
6
7
a=int(input())
s=2
while s**2<=a and a%s!=0:
    s+=1
if a%s!=0:
    s=a
print(s)
2
13.03.2021, 21:45
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2021, 21:45
Помогаю со студенческими работами здесь

Найти наименьший делитель числа, отличный от 1
Есть задача: Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный...

Программа, отыскивающая наименьший общий составной делитель
Составьте программу, отыскивающую наименьший общий составной делитель натуральных чисел N и P

Минимальный простой делитель
Дано целое число не меньшее 2. Выведите его наименьший простой делитель. Входные данные ...

Минимальный простой делитель
Здравствуйте! нужно написать программу, которая при вводе целого числа, не меньшее 2, выводит его...

Минимальный простой делитель
Минимальный простой делитель Дано целое число, не меньшее 2. Выведите его наименьший простой...

Минимальный простой делитель
Минимальный простой делитель Дано целое число, не меньшее 2. Выведите его наименьший простой...

Минимальный простой делитель
Дано целое число, не меньшее 2. Выведите его наименьший простой делитель. Входные данные ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru