Citat:
Att testa huruvida ett heltal är ett primtal görs genom att försöka dela med mindre heltal. Hur ser själva testraden ut i din kod?
Jag har nu skrivit ännu ett script som är tänkt att beräkna om ett tal är ett primtal eller inte. Det fungerar dock inte och jag skulle behöva hjälp med att reda ut diverse buggar. Här är koden:
Output:
Istället för att ta mitt tal % i så tar jag istället kvadratroten ur mitt tal % i. Kvadratroten av 4 är 2, så i detta fall sker det som Blippster beskriver det vill säga att range(n, n) leder till en tom lista att iterera över vilket i sin tur leder till att mitt else-statement körs. Det är lite samma scenario som när number är 2.
När number är 6 så är kvadratroten av number 2.449489742783178, vilket avrundas uppåt till 3. I detta fall får jag alltså 3 % 2 som inte blir 0, vilket leder till att scriptet printar att även talet 6 är ett primtal, vilket är inkorrekt.
Det är ju ganska uppenbart att jag implementerat denna kvadratrotslösning på fel sätt. Några tips på hur jag kan lösa detta
?
Kod:
import math
number = 7
number_sqrt_ceil = math.ceil(math.sqrt(number))
if number > 1:
for i in range(2, number_sqrt_ceil):
if number_sqrt_ceil % i == 0:
print(number, 'is NOT a prime number.')
break
else:
print(number, 'IS a prime number!')
Output:
Istället för att ta mitt tal % i så tar jag istället kvadratroten ur mitt tal % i. Kvadratroten av 4 är 2, så i detta fall sker det som Blippster beskriver det vill säga att range(n, n) leder till en tom lista att iterera över vilket i sin tur leder till att mitt else-statement körs. Det är lite samma scenario som när number är 2.
När number är 6 så är kvadratroten av number 2.449489742783178, vilket avrundas uppåt till 3. I detta fall får jag alltså 3 % 2 som inte blir 0, vilket leder till att scriptet printar att även talet 6 är ett primtal, vilket är inkorrekt.
Det är ju ganska uppenbart att jag implementerat denna kvadratrotslösning på fel sätt. Några tips på hur jag kan lösa detta
?