

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Giải thích: Vì điều kiện n%k!=0 nên khi bạn nhập một số chẵn, n%(n-1)!=0 nên b = True, vì thế nên nếu bạn nhập một số chẵn thì nó luôn ra "la so nguyen to" (đối với số lẻ thì n%(n-2)!=0 nên b = True luôn)
$\\$
Ví dụ với n là số chẵn:
Đặt ra một ví dụ: n = 6
Với điều kiện n%2==0(True) thì b = False
k = 3
Với điều kiện n%k==0(True) thì b = False
k = 5
Với điều kiện n%k!=0(True) thì b = True
Với điều kiện b==True(True) thì in ra "là số nguyên tố".
$\\$
Ví dụ với n là số lẻ:
Đặt ra một ví dụ: n = 9
k = 3
Với điều kiện n%k==0(True) thì b = False
k = 5
Với điều kiện n%k!=0(True) thì b = True
k = 7
Với điều kiện n%k!=0(True) thì b = True
Với điều kiện b==True(True) thì in ra "là số nguyên tố"
$\\$
Còn nếu bạn không hiểu nữa thì bạn có thể sử dụng chế độ debug có sẵn trong các IDE.
$\\$
Sửa code (code này mình bỏ biến a do nó chả làm gì, a == True, not a == False):
n = int(input('nhap so tu nhien n: '))
b = True
#Vì đặt b = True rồi nên không cần điều kiện n==2
if (n<2 or (n%2==0 and n!=2)): #Vì 2 là số nguyên tố nên cần thêm điều kiện n!=2
b = False
for k in range (3,n,2):
if (n%k==0):
b = False
if (b==True):
print('la so nguyen to')
if (b==False):
print('khong la so nguyen to')
$\\$
`@Daoanhviet96`
Hãy giúp mọi người biết câu trả lời này thế nào?
- b là biến nên giá trị b có thể thay đổi trong quá trình thực hiện chương trình.
`1.`
if n==2 :
b=a
if n<2 or n%2==0:
b=not a
- Khi nhập n = 2, b = a = True
- Với n = 2, điều kiện (n < 2 or n % 2 == 0) đúng vì (n % 2 == 0) đúng, b = not a = False
- Với n = 2 thì in ra màn hình "không là số nguyên tố"
`2.`
for k in range(3,n,2):
if n%k==0:
b=not a
if n%k!=0:
b=a
- Giá trị k = {3, 5, 7, 9, 11}
- Nếu n chia hết cho k (số lẻ) thì n không là số nguyên tố
- Nếu n không chia hết cho k (số lẻ) thì n là số nguyên tố
⇒ Sai vì với n = 12 thì không chia hết cho giá trị k cuối là 11 nhưng 12 không là số nguyên tố
`3.`
n = int(input("Nhập số tự nhiên n: "))
a = True
b = True
if n < 2 or n % 2 == 0:
b = not a
if n == 2:
b = a
for k in range(3, n):
if n % k == 0:
b = not a
if b == True:
print("Là số nguyên tố")
if b == False:
print("Không là số nguyên tố")
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin