素数计划:我想知道我成功计划的原因

时间:2020-09-13 03:49:28

标签: python

我是一名刚开始学习python的学生,当时我正在制作一个程序,使用break和continue打印从1到300的素数,它执行得很好,但我不明白为什么它不打印1。如果给定范围为(a,a),该函数将起作用。您可以理解为什么在看到代码后问这个原因,因为我认为这是在质数程序中未显示1的原因。

a=range(1,301)
for num in a:
   for d in range(2,num+1)
           rem=num % d
           if(rem==0):
                if (d != num ):
                     break
            if (num != d):
                 continue
            print (num, end=' ')

           

1 个答案:

答案 0 :(得分:2)

让我们遍历您的代码

a=range(1,301) # this gives numbers from  1 to 300
for num in a: #assume we are at num =1
   for d in range(2,num+1) # in this range fnc we start from 2 till 2 so this loop is not even executed
           rem=num % d
           if(rem==0):
                if (d != num ):
                     break
            if (num != d):
                 continue
            print (num, end=' ')
a=range(1,301)
for num in a:
    if num ==1: print (num, end=' ') # 1 is a co prime
    for d in range(2,num+1):
        rem=num % d
        if(rem==0):
            if (d != num ):
                break
        if (num != d):
            continue
        print (num, end=' ')

(a,b)的范围函数从a到b,即从a到b的门阶(因此不包括b)

如果您已经在(a,b)的b处,其中a == b,那么范围函数将不会启动

相关问题