python 根据给定条件求素数或合数的代码

python code to find prime or composite number according to given condition

Q) 所有质数都可以写成6m+1或6m-1的形式,其中m>=1。编写一个程序,如果满足上述 属性 则打印“无法确定”,否则打印“复合数”。

我不知道如何将给定的语句放入代码中。我尝试了一些代码(例如下面给出的代码)但没有什么让我印象深刻。请帮忙。我的代码在 pastebin 中 link 因为这里的格式设置不正常

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

存在缩进错误,同时删除了 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")

循环没有意义,它只是不必要的工作并且它不太清楚。对于某个整数 m,每个大于 3 的素数 p 必须具有 6m + 1 或 6m - 1 的形式。这相当于说 p = 1 mod 6 或 p = -1 = 5 mod 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")