python利用while循环求2到100内的素数

2021-03-31 09:45发布

6条回答
芒果
1楼 · 2021-03-31 16:10.采纳回答

import math


i = 2

while i < 101>

    j = 2

    flag_1 = True

    flag_2 = 1

    while j < int>

        flag = False

        flag_2 = 1

        while  i%j==0 and flag_2:

            flag = True

            flag_2 = 0

        flag_2 = 1

        while flag and flag_2:

            flag_1 = False

            flag_2 = 0

        j += 1

    while flag_1 and flag_2:

        print(i,end=' ')

        flag_2 = 0

    i += 1

20200921文 - 做更棒的自己!
2楼 · 2021-03-31 20:31

用 python 2.7 写出来是这样的,break 后是 j = j + 1,是第二个 while 里的动作, j <= (i/j) 是为了减少不必要的计算,因为比如判断 10 是否是 素数,其实只需要判断 10 能否被 2,3(

1
2
3
4
5
6
7
8
9
10
11
= 2
while i < 102:
    = 2
    while j <= i/j:
        if i%== 0:
            break
        = + 1
    if j > i/j:
        print i,
        print " is a prime"
    = + 1


小橘子
3楼 · 2021-04-01 14:06

# for 版本 listPM = [2] for num in range(3,10000 + 1,2):  

  for i in listPM:      

  if i ** 2 > num:           

  listPM.append(num)            

break     

   if (num % i) == 0:           

 break print(len(listPM),listPM) 

# while 版本 listPM = [2] it = iter(range(3,10000 + 1,2)) while  True:    

try:        num = next(it)    except :        

break    

for i in listPM:       

 if i ** 2 > num:            

listPM.append(num)           

 break        

if (num % i) == 0:            

break print(len(listPM),listPM)


ablabla
4楼 · 2021-04-05 19:35

# for 版本 listPM = [2] for num in range(3,10000 + 1,2):  

  for i in listPM:      

  if i ** 2 > num:           

  listPM.append(num)            

break     

   if (num % i) == 0:           

 break print(len(listPM),listPM) 

# while 版本 listPM = [2] it = iter(range(3,10000 + 1,2)) while  True:    

try:        num = next(it)    except :        

break    

for i in listPM:       

 if i ** 2 > num:            

listPM.append(num)           

 break        

if (num % i) == 0:            

break print(len(listPM),listPM)


cccc
5楼 · 2021-04-08 12:18

import math


i = 2

while i < 101>

    j = 2

    flag_1 = True

    flag_2 = 1

    while j < int>

        flag = False

        flag_2 = 1

        while  i%j==0 and flag_2:

            flag = True

            flag_2 = 0

        flag_2 = 1

        while flag and flag_2:

            flag_1 = False

            flag_2 = 0

        j += 1

    while flag_1 and flag_2:

        print(i,end=' ')

        flag_2 = 0

    i += 1


梵梵
6楼 · 2021-04-11 14:38

# for 版本 listPM = [2] for num in range(3,10000 + 1,2):  

  for i in listPM:      

  if i ** 2 > num:           

  listPM.append(num)            

break     

   if (num % i) == 0:           

 break print(len(listPM),listPM) 

# while 版本 listPM = [2] it = iter(range(3,10000 + 1,2)) while  True:    

try:        num = next(it)    except :        

break    

for i in listPM:       

 if i ** 2 > num:            

listPM.append(num)           

 break        

if (num % i) == 0:            

break print(len(listPM),listPM)