根据给定条件查找素数或复合数的python代码

2024-09-29 18:36:57 发布

您现在位置:Python中文网/ 问答频道 /正文

Q)对于某些m>,所有素数都可以写成6m+1或6m-1的形式=1.如果满足上述属性,则编写程序打印“无法决定”,否则打印“复合编号”

我不知道如何将给定的语句转换成代码。我尝试了一些代码(例如下面给出的代码),但没有什么让我感到惊讶。请帮忙。我的代码位于pastebin链接中,因为此处的格式设置不正常

https://pastebin.com/sMqT6Eic

n=int(input())
for m in range(1,n):
       
    if n==6*m+1 or n==6*m-1:
        print("Cannot be determined")
    else:
        print("Composite number")
    break

Tags: 代码httpsgtcom属性链接格式语句
2条回答

有一个循环没有意义,它只是不必要的工作,而且它不太清晰。对于某些整数m,大于3的每个素数p的形式必须为6m+1或6m-1。这相当于说p=1模6或p=-1=5模6。那就做个测试吧

n=int(input('Enter value to test for primality: '))

# assume n > 3

if n % 6 in (1, 5):
    print("Cannot be determined")
else:
    print("Composite number")

存在缩进错误,并且还删除了n变量声明附近的“”。当满足条件而不是在if语句之外时,中断循环。它将只检查m=1并中断循环。获取一个新变量,该变量将在满足条件且循环中断时更新其值。如果变量被更新,则它是素数;如果变量未被更新,则条件从未满足,并且它是复合的。编辑代码:

n=int(input())
m=int()
f=0           #new variable
for m in range(1,n):
    if n==6*m+1 or n==6*m-1:
        f=1     #update the variable when condition satisfied
        break   #break the loop
    else:
        continue
if f==1:       #updated value when condition satisfied
    print("Cannot be determined")
else:
    print ("Composite")

相关问题 更多 >

    热门问题