Swift конвертировать время назад

Я медленно отвечаю на этот вопрос, но это было похоже на забавное упражнение. Я использую numpy, который может быть обманом, и я сомневаюсь, что этот метод является самым быстрым, но он должен быть ясным. Он решает булевой массив, ссылаясь только на его индексы, и выдает простые числа из индексов всех значений True. Нет необходимости в модуле.

import numpy as np
def ajs_primes3a(upto):
    mat = np.ones((upto), dtype=bool)
    mat[0] = False
    mat[1] = False
    mat[4::2] = False
    for idx in range(3, int(upto ** 0.5)+1, 2):
        mat[idx*2::idx] = False
    return np.where(mat == True)[0]
16
задан Community 23 May 2017 в 11:46
поделиться