首页 > 解决方案 > 素数计划:我想知道我成功计划的原因

问题描述

我是一个刚刚开始学习 python 的学生。我正在制作一个程序来打印从 1 到 300 的素数,使用 break 并继续它并且它执行得很好,但我不明白为什么它不打印 1 。如果 range 函数如何工作给定的范围是(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=' ')

           

标签: python

解决方案


让我们看看你的代码

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 不包括在内)

如果你已经在 b for (a,b) where a==b 那么范围函数不会启动


推荐阅读