Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Подскажите, как найти просто число в пайтон, челы

  1. Подскажите, как найти просто число в пайтон, челы

    Народ, недавно начал кодить на Python и застрял на задаче: нужно найти простое число. Какие методы предложите для проверки, что число простое? Если можно, киньте пример кода, чтобы самому понять, как это работает. Я понимаю, что можно делать проверку делением, но это долго и нудно. Может, есть какие-то хакерские лайфхаки или типа того?



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Йо, ну для начала можешь писать функцию, которая фигачит простое число. Например, так:

    Программный код:
    def is_prime(n):
        if 
    <= 1:
            return 
    False
        
    for i in range(2int(n**0.5) + 1):
            if 
    == 0:
                return 
    False
        
    return True

    число 
    29
    if is_prime(число):
        print(
    f'{число} - это простое число')
    else:
        print(
    f'{число} - это не простое число'
    Тут юзаем корень из числа для оптимизации - так быстрее и элегантнее. Ну и да, если делится хоть на одно число из этого интервала, то всё - не проканало.

  4. Цитата Сообщение от BlueWolf
    Йо, ну для начала можешь писать функцию, которая фигачит простое число. Например, так:

    Программный код:
    def is_prime(n):
        if 
    <= 1:
            return 
    False
        
    for i in range(2int(n**0.5) + 1):
            if 
    == 0:
                return 
    False
        
    return True

    число 
    29
    if is_prime(число):
        print(
    f'{число} - это простое число')
    else:
        print(
    f'{число} - это не простое число'
    Тут юзаем корень из числа для оптимизации - так быстрее и элегантнее. Ну и да, если делится хоть на одно число из этого интервала, то всё - не проканало.
    Йоу, годнота. Правда, для больших диапазонов и так-себе чисел может и тормозить. Но алгос - топ.

  5. Поцики, можно юзануть библиотеку sympy, там есть всё по проверке простых чисел. Вот примерчик:

    Программный код:
    from sympy import isprime

    число 
    31
    if isprime(число):
        print(
    f'{число} - это простое')
    else:
        print(
    f'{число} - не простое'
    Вообще, для ленивых как я

  6. Цитата Сообщение от Татьяна Валентиновна
    Поцики, можно юзануть библиотеку sympy, там есть всё по проверке простых чисел. Вот примерчик:

    Программный код:
    from sympy import isprime

    число 
    31
    if isprime(число):
        print(
    f'{число} - это простое')
    else:
        print(
    f'{число} - не простое'
    Вообще, для ленивых как я
    Блин, чувак, sympy чот не из лёгких, но зато моща. Надо будет заценить.

  7. Всем халло! Самая простая тема - решето Эратосфена. Просто создаем массив всех чисел до n и вычеркиваем состава. Правда, подойдет, если много чисел сразу проверять надо:

    Программный код:
    def sieve_of_eratosthenes(max_num):
        
    primes = [True] * (max_num 1)
        
    primes[0] = primes[1] = False
        
    for i in range(2int(max_num**0.5) + 1):
            if 
    primes[i]:
                for 
    j in range(i*imax_num 1i):
                    
    primes[j] = False
        
    return [for i in range(max_num 1) if primes[i]]

    print(
    sieve_of_eratosthenes(50)) 
    Вот так с фильтром больших-то чисел.

  8. Цитата Сообщение от Алиса
    Всем халло! Самая простая тема - решето Эратосфена. Просто создаем массив всех чисел до n и вычеркиваем состава. Правда, подойдет, если много чисел сразу проверять надо:

    Программный код:
    def sieve_of_eratosthenes(max_num):
        
    primes = [True] * (max_num 1)
        
    primes[0] = primes[1] = False
        
    for i in range(2int(max_num**0.5) + 1):
            if 
    primes[i]:
                for 
    j in range(i*imax_num 1i):
                    
    primes[j] = False
        
    return [for i in range(max_num 1) if primes[i]]

    print(
    sieve_of_eratosthenes(50)) 
    Вот так с фильтром больших-то чисел.
    Ну да, решето мы еще в универе юзали, вполне норм тема.

  9. Чекни ее, если ты реально прям кодишь норм. Напихай тесты еще в функ, чтобы в разных вариках понятно было. Чем больше тестов, тем легче лечить баги.

  10. Цитата Сообщение от WaterSurge
    Чекни ее, если ты реально прям кодишь норм. Напихай тесты еще в функ, чтобы в разных вариках понятно было. Чем больше тестов, тем легче лечить баги.
    О, идея с тестами огонь, этого не хватает частенько. Просто массово проверять числа легче будет.

Страница 1 из 2 12 ПоследняяПоследняя