簡單的幾種給定乙個數判斷是否是質數的方法

2021-08-14 09:08:18 字數 1440 閱讀 9270

給定乙個整數n,判斷是否是質數(質數是只能被1和它自身整除的數)

第一種:運用數學函式

import math

num = int(input("輸入乙個數值:"))

if num > 1:

sqare_num = math.floor(num**0.5)

for i in range(2,num):

if(num%i and num%(i+1)) == 0:

print(num,"不是質數")

break

else:

print(num,"是質數")

break

else:

print(num,"不是")

第二種:while迴圈,break跳出,else設計迴圈條件

num = int(input("輸入乙個數值:"))

i = 2

while i < num:

s = num % i

if s == 0:

print("{}能被除的數其中有{}".format(num, i))

break

else:

i += 1

if num == i:

print("是質數")

else:

print("不是質數")

第三種:迴圈讓判斷的數一直除以從2-本身

num = int(input("請輸入乙個需要判斷的數:"))

i = 2

for i in range(2,num):

if num%i == 0:

print("%d不是質數"%num)

break

if num%i!=0 and num != 1 or num == 2:

print("%d是質數" % num)

if num == 1:

print("%d既不是質數,也不是合數" % num)

第四種:立flag巧妙跳出迴圈,以及合理判斷質數條件

num = int(input("請輸入乙個需要判斷的數:"))

i = 2

flag = true

while i < num:

if num%i == 0:

print(num, "不是質數")

flag = false

i = num #num = 0 關鍵是讓這個迴圈結束,也可用break直接跳出,這裡考慮break外的方法

i += 1

if flag == true and num!=1 or num == 2:

print(num,"是質數")

if num == 1:

print("1既不是質數,也不是合數")

判斷乙個數是否是回文數

題目 定義回文數的概念如下 如果乙個非負數左右完全對應,則該數是回文數,如 121,22 如果乙個負數的絕對值左右完全對應,則該數是回文數,如 121,22 public static void main string args printrandm arr,3 1 5 4 system.out.p...

判斷乙個數是否是質數

乙個數如果可以進行因數分解,那麼分解的兩個數一定是乙個小於等於sqrt n 乙個大於等於sqrt n 因此遍歷到sqrt n 即可。因為如果sqrt n 左側找不到因數,右側也一定找不到因數。中心思想 遍歷n是否能被2到sqrt n 之間的數整除,如果不能則為質數。import math defis...

判斷乙個數是否是素數

素數釋義 曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 public boolean isprime int n for int i 2 i從2開始,一直到小於其自身,依次判斷能否被n整除即可,能夠整除則不是質數,否則是質數...