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

Найти 100 первых простых чисел

17.12.2018, 00:42. Показов 7326. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти 100 первых простых чисел. Вывести их на экран через пробел.

i=2
a = 0
bool_off = True
while bool_off:
f=True
j=2
while f and j<i:
if not i%j: f=False
j+=1
if f:
print(i,end=' ')
a += 1
i+=1
if a >= 100:
bool_off = False


2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2018, 00:42
Ответы с готовыми решениями:

Найти 100 первых простых чисел
Найти 100 первых простых чисел. Исправьте пожалуйста def primes_upto(limit): prime = * limit for n in range(2, limit): if...

Вывести на экран 100 первых простых чисел
Вывести на экран 100 первых простых чисел Внешний цикл должен отвечать за контроль того, сколько чисел найдено, и генерацию следующего...

Найти 15 первых натуральных чисел, делящихся нацело на 19 и больше 100
С помощью классов найти 15 первых натуральных чисел, дилятся нацело на 19 и находятся в интервал левая граница которого равна 100.

7
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
17.12.2018, 01:05
Когда Вы копируете сюда текст своей программы используйте в окне кнопку Python ('Выделить код Python') и туда вставляйте свою программу, что бы не пропадали отступы из Вашей программы. Тогда будет проще отвечать на Ваш вопрос, учитывая, что ошибка у Вас может быть и в неправильных отступах. Отступы являются частью синтаксиса Python.
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 16
17.12.2018, 01:14  [ТС]
Код верный! Понять бы что означает та или иная функция!
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
17.12.2018, 11:25
Вот для понимания и нужно вывести правильно структурированный код. А тратить время, что бы разбираться в таком коде, нет никакого желания.
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
17.12.2018, 11:28
Что именно не понятно? Вроде все основные операторы python используются, ничего не обычного
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
17.12.2018, 11:58
Я принципиально не разбираюсь с кодами, где отсутствую отступы, так как отступы это часть синтаксиса Python.

Добавлено через 4 минуты
А аналогичную задачу я сам писал, так что если будет правильно оформленный код, я тогда его прокомментирую.
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 16
17.12.2018, 18:13  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
i=2
a = 0
bool_off = True
while bool_off:
    f=True
    j=2
    while f and j<i:
        if not i%j: f=False
        j+=1
    if f: 
        print(i,end=' ')
        a += 1
    i+=1
    if a >= 100:
        bool_off = False
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.12.2018, 02:43
Во первых нужно помнить, что для циклов условие в виде любого числа кроме нуля, является True, 0 (ноль) воспринимается как False. И еще особенность питон, True синоним 1(единицы), False синоним (нуля)
Например True + 4 вернет 5, а 7*False вернет 0.
Python
1
2
3
4
5
6
>>> n = True + 4
>>> n
5
>>> n = 7*False
>>> n
0
Теперь рассмотрим Ваш сценарий:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
i=2                       # первое простое число, это 2
a = 0                     # счетчик найденных простых чисел
bool_off = True
while bool_off:
    f=True
    j=2
    while f and j<i:
        if not i%j: f=False  # i%j - деление по модулю, которое возвращает остаток от деления. Он равен нулю, если
                             # i делится на j. Ноль это False, not False это True. Отсюда получается, если i не делится
                             # на j, то i%j будет True и условие будет ложь, тогда f останется истиной и
                             # цикл повторится для для следующего делителя j + 1. Если найдется j меньшее чем i, На которое
                             # i делится, то f будет присвоено False и цикл прекратится, и следующее If не сработает. Если же
                             # не найдется j, на которое делится i, и цикл дойдет до j = i, то цикл прекратится, но F останется
                             # равным True и if следующее ниже за циклом сработает, напечатав простое число.
                             # Дальше все просто, разберитесь сами.
        j+=1
    if f: 
        print(i,end=' ')
        a += 1
    i+=1
    if a >= 100:
        bool_off = False
Но этот сценарий не самый быстрый.
Вот сценарии поиска простых чисел, алгоритмы которых взяты еще из паскаля, 4 варианта проверки числа на простоту:

--------------------------------------------------

----------

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# проверка является ли число простым
import math
def is_prime1(n):
    for i in range(2, int(math.sqrt(n) + 1)):
        if n % i == 0: 
            return False
    return n > 1
   
def is_prime2(n, d=3):
    if n < 2 or n != 2 and n & 1 == 0:
        return False
    if d * d > n:
        return True
    return n % d and is_prime2(n, d + 2)
 
def is_prime3(n):
    return ~-2 ** n % n < 2
 
def is_prime4(n):
    return sympy.isprime(n)
 
print(is_prime1(2683))
print(2683>1)
Добавлено через 2 минуты
Правда для четвергого варианта нужна библиотека SymPy.
SymPy представляет собой открытую библиотеку символьных вычислений на языке Python. ... SymPy полностью написан на Python и не требует сторонних библиотек.
Но самый прикольный, это третий вариант:

Добавлено через 1 минуту
Python
1
2
def is_prime3(n):
    return ~-2 ** n % n < 2
Добавлено через 8 минут
Как он работает я не знаю, но работает правильно, точно определяя является ли число простым.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2018, 02:43
Помогаю со студенческими работами здесь

Найти 10 первых натуральных чисел, оканчивающихся на цифру 7, кратных числу 9 и больших 100
14. Найти 10 первых натуральных чисел, оканчивающихся на цифру 7, кратных числу 9 и больших 100.

Получить m первых простых чисел
7. Получить m первых простых чисел.

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

Создать файл, состоящий из 100 случайных чисел в диапазоне от 20 до 200. Проверить наличие в файле простых чисел: 23, 31
Создать файл, состоящий из 100 случайных чисел в диапазоне от 20 до 200. Проверить наличие в файле простых чисел: 23, 31. Помогите ребят

Найти первых 100 простых чисел
Найти первых 100 простых чисел. Помогите пожалуйста, никак не получается.


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru