Python Prime Generator - PullRequest
       21

Python Prime Generator

0 голосов
/ 12 ноября 2018

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

maximum_range = int(input('How big do you want the range?'));
i = 3;
checkPrime = True;
while (i <= maximum_range):
    y = 2;
    print('i {}'.format(i))
    print('y {}'.format(y))
    halfI = int((i/2)+ 1)
    checkPrime = False;
    while (y <= halfI & checkPrime):
        y += 1
        if (i%y == 0):
            print('{} is not prime because it is divisible by' .format(i))
            checkPrime = False;
    i += 2
    if (checkPrime & y == halfI):
        print('{}s is prime' .format(i))   
    checkPrime = True;

Проблема в том, что вложенная итерация не работает, она достигает «здесь 1», и все. Я также напечатал y и i, которые выводят правильные значения, но, похоже, ничего не делает.

Большое спасибо тем, кто помог, пожалуйста, будьте терпеливы, я предпочитаю Javascript.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы неправильно понимаете операторы python:

Как указано здесь: https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations

Оператор & возвращает побитовое И его аргументов, которые должны быть целыми числами.

То, что вы должны использовать, это логический оператор "и".

Еще одна вещь, которую вам следует позаботиться о приоритете операторов: https://docs.python.org/3/reference/expressions.html#operator-precedence

О логике вашегокод, до тех пор, пока вы обнаружите новые простые числа, вы можете использовать их, чтобы разделить (выполнить операцию модуля) слишком быстро (меньше шагов), потому что каждое число может разложиться в продукт простых факторов.Я не даю вам пример, потому что я не знаю точно, чего вы хотите достичь, если вы приведете пример того, что вам нужно, я могу это сделать.

...