[英]Use python check if this number is a prime or not?
我有一個十六進制
number = C847923CE24DE8B7CA66AB9620BAF1831FE65EA0D9A2928D6D75B12C567F6C2586ED07AE0EE5C8ECD8793F1683AF1893C0BE521A10F69E6DC951DC7E2CB47E8B
它應該等於
10489492484628552513045989867681469503774243086255660470449316956846449417667713853937696810038768145686753348376338135274255531844743941964455973060116107
我試過這個https://www.programiz.com/python-programming/online-compiler/?ref=374cc95b
但是得到了這個錯誤:
回溯(最近一次調用最后一次):文件“”,第 4 行,在溢出錯誤中:range() 結果有太多項目
如果您可以使用庫來檢查數字是否為質數(並且您的問題不是關於如何自己編寫有效的質數檢查器),那么以下內容如何:
>>> import sympy
>>> num = int('C847923CE24DE8B7CA66AB9620BAF1831FE65EA0D9A2928D6D75B12C567F6C2586ED07AE0EE5C8ECD8793F1683AF1893C0BE521A10F69E6DC951DC7E2CB47E8B', 16)
# 10489492484628552513045989867681469503774243086255660470449316956846449417667713853937696810038768145686753348376338135274255531844743941964455973060116107L
>>> sympy.isprime(num)
# False
關於將十六進制數轉換為普通(基數為十)數,您可以執行以下操作:
>>> int('A', 16)
10
其中第二個 arg 是輸入數字的base
。
但我還需要一個高效的代碼檢查器:為什么下面的代碼不能處理大數?
# Program to check if a number is prime or not
num = 407
# To take input from the user
#num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.