2022年10月20日 星期四

Prime

 import time

n = 5000

p = []

# m1

st_time = time.time() 

a = [2]

for i in range(3,n+1,2):

    isP = True

    for j in a:

        if j*j>i: break

        if i%j==0:

            isP = False

            break

    if isP :a.append(i)

print(len(a))

end_time = time.time()

p.append( end_time-st_time)


# m2 

st_time = time.time()

a = []

for i in range(1,n+1):

    c = 0

    for j in range(1,i+1):

        if i%j==0:

            c+=1

    if c==2: a.append(i)

print(a)

print(len(a))

end_time = time.time()

p.append( end_time-st_time)


# m3 

st_time = time.time()

a = [i for i in range(2,n+1)]


for j in range(2,int(n**0.5)+1):

    a = [i for i in a if i%j!=0]

    a.append(j)


a.sort()


end_time = time.time()

p.append( end_time-st_time)


# m4

st_time = time.time()

a = [2,3,5]

for i in range(6,n-3,6):

    f = True

    for j in a:

        if (i+1)%j==0:

            f = False

            break

    if f :    

        a.append(i+1)

        

    f = True

    for j in a:

        if (i+5)%j==0:

            f = False

            break

    if f :    

        a.append(i+5)

print(a)

print(len(a))

end_time = time.time()

p.append( end_time-st_time)


#print final

print(p)

ntimes = [int(i/min(p)) for i in p]

print(ntimes)