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

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

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2021, 22:16   #1
Jorsan
Пользователь
 
Регистрация: 14.03.2021
Сообщений: 39
Восклицание Проблема с задачкой

У меня есть такой код:
Код:
n = int(input())
while n <= 10**5:
    for n in range(2,n):
        if n%2 != 0 and n/3 != 3 or n == 2:
    else:
        break
Он проверяет простые ли числа и выводит их на экран в столбик, но мне ещё нужно посчитать какое количество чисел и вывести их, но я не понимаю как, учусь на 1 курсе, так что сложных функций и модулей ещё не проходили.
Jorsan вне форума Ответить с цитированием
Старый 18.03.2021, 23:20   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

В текущем виде код вообще не интерпретируется питоном. Никакой печати чисел нет. Странная проверка на простоту числа. Не стоит использовать одно и то же имя переменной n для всех циклов.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 19.03.2021, 10:13   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Цитата:
Он проверяет простые ли числа и выводит их на экран в столбик, но мне ещё нужно посчитать какое количество чисел и вывести их, ...
1. Для подсчёта числа простых чисел следует определиться с диапазоном значений, в котором ищутся простые числа. Пусть это число m в диапазоне от 1 до 10**5.
2. Есть несколько способов проверять число на простоту. Первый - делением.
Код:
# Счётчик числа простых чисел обнуляем.
# В цикле до m: (пусть параметр цикла n)
       # В цикле от 2 до sqrt(n): (пусть параметр цикла k)
             # Число делится целочисленным способом на все числа из диапазона от 2 до sqrt(n).
             #  n % k - получение остатка
             # Если остаток равен 0, то число составное. Делаем break.
       # Иначе:
             # Увеличиваем счётчик на 1, так как число простое.
             # Печатаем найденное число
# Печатаем число простых чисел
PS:
Подумайте, почему достаточно искать делители только до sqrt(n).
Помните, что sqrt(n) даёт вещественное число. Его надо сделать целым.
Цитата:
так что сложных функций и модулей ещё не проходили.
Для sqrt() необходимо подключить модуль math. Он не должен относиться к сложным
Достаточно так:
Код:
from math import sqrt
Как-то так, ...

Последний раз редактировалось ViktorR; 19.03.2021 в 10:20.
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Help с Задачкой Vladik_2954 Паскаль, Turbo Pascal, PascalABC.NET 7 18.10.2018 07:50
проблема с задачкой на паскале medikod Помощь студентам 0 20.04.2011 20:47
Проблема с задачкой Джиган Microsoft Office Excel 2 07.02.2011 19:40
help с задачкой SYL@R Помощь студентам 2 07.07.2008 12:41