Warum müssen Sie mit Python-Code nur die Quadratwurzel für Primzahlen und die Idee einer geringeren Komplexität für Primzahlen finden?

Warum verwendet man zum Finden von Primzahlen nur die Quadratwurzel?

Wenn eine Zahl in zwei Faktoren geteilt werden kann, müssen die beiden Faktoren einen Faktor haben, der kleiner als die Quadratwurzel der Zahl ist, und einen Faktor, der größer als die Quadratwurzel der Zahl ist.
Wenn eine Zahl bei 2 beginnt und zur Quadratwurzel geht, ohne einen Faktor zu finden, muss es sich um eine Primzahl handeln.

wenn xxx kann ina × ba × bA×b , das heißt:
a × b = xa × b = xA×B=x
teilt beide Seiten durch (b × xb×\sqrt xB×X ),有:
ax = xb \frac{a}{\sqrt x} =\frac{\sqrt x}{b}X a=BX
a < x a<\sqrt xA<X , dann: x < b \sqrt x < bX <b
Man sagt also:
Zwei Faktoren müssen einen Faktor haben, der kleiner als die Quadratwurzel dieser Zahl ist, und einen Faktor, der größer als die Quadratwurzel dieser Zahl ist.

Finden Sie eine Idee mit einer geringeren Komplexität der Primzahlen

Sie können zunächst beurteilen, ob die Zahl durch 2 teilbar ist.
Wenn nicht, dann durchlaufen Sie sie, beginnen Sie beim Durchlaufen bei 3, setzen Sie Schritt = 2 und
das Ende der Durchquerung ist ihre Quadratwurzel.

der Code

import math
def print_is_prime(number,T):  #输出字符串情况
    if T == 1:
        print(number,"is a prime")
    else:
        print(number,"is not a prime")
def is_prime(number):
    if number in [2,3,5,7]:   #简单的可以直接判断,不必进入下面循环
        return 1
    if number%2 ==0:
        return 0
    for i in range(3,int(math.sqrt(number))+1,2):
        if number%i == 0:
            return 0
            break
        else:
            continue
    return 1

おすすめ

転載: blog.csdn.net/qq_49030008/article/details/123850362