Bạn cần ngừng lặp lại một khi bạn biết một số không phải là số nguyên tố. Thêm
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
2 khi bạn tìm thấy Prime để thoát vòng lặp trong khi.Chỉ thực hiện các thay đổi tối thiểu đối với mã của bạn để làm cho nó hoạt động:
a=2
num=13
while num > a :
if num%a==0 & a!=num:
print['not prime']
break
i += 1
else: # loop not exited via break
print['prime']
Thuật toán của bạn tương đương với:
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
Nếu bạn ném nó vào một chức năng, bạn có thể phân phối với
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
2 và for-else:def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
Ngay cả khi bạn sẽ có lực lượng vũ phu cho Prime như thế này, bạn chỉ cần lặp lại đến căn bậc hai của
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
4. Ngoài ra, bạn có thể bỏ qua kiểm tra các số chẵn sau hai.Với những gợi ý này:
import math
def is_prime[n]:
if n % 2 == 0 and n > 2:
return False
for i in range[3, int[math.sqrt[n]] + 1, 2]:
if n % i == 0:
return False
return True
Lưu ý rằng mã này không xử lý đúng
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
5, for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
6 và số âm.Chúng tôi làm cho điều này đơn giản hơn bằng cách sử dụng
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
7 với biểu thức máy phát để thay thế vòng lặp.import math
def is_prime[n]:
if n % 2 == 0 and n > 2:
return False
return all[n % i for i in range[3, int[math.sqrt[n]] + 1, 2]]
\ $ \ beingroup \ $
Tôi đã tạo một hàm có đối số
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 và trả về for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
9 nếu for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 là số nguyên tố và def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
1 nếu for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 là số phi chính.Tôi là người mới bắt đầu và nghĩ rằng mã có thể được cải thiện. Tôi đã phải thêm tuyên bố khác vì đối với
def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
3, tôi tiếp tục nhận được def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
4 thay vì for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
9. Tôi nghĩ rằng điều này là bởi vì khi for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 là def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
7, def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
8 in def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
9.Có cách nào tôi có thể thay đổi điều này để không có một tuyên bố riêng nào khác không?
def is_prime[x]:
list_n = range[2,x]
if x 2:
for n in range[len[list_n]]:
list_n[n] = x % list_n[n]
for n in list_n:
if n == 0:
return False
for n in list_n:
if n > 0:
return True
else:
return True
200_success
Phù bằng vàng 143K2222 gold badges185 silver badges468 bronze badges
Đã hỏi ngày 17 tháng 6 năm 2017 lúc 18:06Jun 17, 2017 at 18:06
\ $ \ endgroup \ $
\ $ \ beingroup \ $
Tôi đã tạo một hàm có đối số
for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 và trả về for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
9 nếu for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 là số nguyên tố và def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
1 nếu for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 là số phi chính. for n in range[2, x]:
if x % n == 0:
return False
return True
Tôi là người mới bắt đầu và nghĩ rằng mã có thể được cải thiện. Tôi đã phải thêm tuyên bố khác vì đối với
def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
3, tôi tiếp tục nhận được def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
4 thay vì for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
9. Tôi nghĩ rằng điều này là bởi vì khi for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
8 là def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
7, def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
8 in def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
9.Có cách nào tôi có thể thay đổi điều này để không có một tuyên bố riêng nào khác không?
Phù bằng vàng 143K22Jun 17, 2017 at 18:31
Đã hỏi ngày 17 tháng 6 năm 2017 lúc 18:06vnp
\ $ \ endgroup \ $4 gold badges49 silver badges135 bronze badges
\ $ \ endgroup \ $
4
\ $ \ beingroup \ $
Tôi đã tạo một hàm có đối số
8 và trả vềfor a in range[a, num]: if a % num == 0: print['not prime'] break else: # loop not exited via break print['prime']
9 nếufor a in range[a, num]: if a % num == 0: print['not prime'] break else: # loop not exited via break print['prime']
8 là số nguyên tố vàfor a in range[a, num]: if a % num == 0: print['not prime'] break else: # loop not exited via break print['prime']
1 nếudef is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
8 là số phi chính.for a in range[a, num]: if a % num == 0: print['not prime'] break else: # loop not exited via break print['prime']
2import math def is_prime[n]: if n % 2 == 0 and n > 2: return False for i in range[3, int[math.sqrt[n]] + 1, 2]: if n % i == 0: return False return True
Tôi là người mới bắt đầu và nghĩ rằng mã có thể được cải thiện. Tôi đã phải thêm tuyên bố khác vì đối với
3, tôi tiếp tục nhận đượcdef is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
4 thay vìdef is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
9. Tôi nghĩ rằng điều này là bởi vì khifor a in range[a, num]: if a % num == 0: print['not prime'] break else: # loop not exited via break print['prime']
8 làfor a in range[a, num]: if a % num == 0: print['not prime'] break else: # loop not exited via break print['prime']
7,def is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
8 indef is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
9.def is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
0: quyết định rằng con số là tổng hợp có thể được thực hiện khi đang bay, ngay khi một số phần còn lại trở thành 0. Nếu không ai trong số họ là 0, bạn sẽ biết rằng số đó là số nguyên tố:if n 2: return False for i in range[3, int[math.sqrt[n]] + 1, 2]: if n % i == 0: return False return True
- thực sự là những gì mã của bạn đang làm, nhưng không có danh sách và không có trường hợp đặc biệt cho
7.def is_prime[n]: for i in range[3, n]: if n % i == 0: return False return True
- Điều đó nói rằng, tất nhiên thuật toán có thể được cải thiện rất nhiều, nhưng nó vượt quá điểm của bài tập này.
Đã trả lời ngày 17 tháng 6 năm 2017 lúc 18:31
for n in list_n: if n > 0: return True
vnpvnp
def is_prime[integer]:
"""Returns True if input is a prime number"""
if integer < 2 or not isinstance[integer, [int, long]]: # remove long if using Python 3
return False
if integer == 2:
return True
if integer % 2 == 0: # which can also be written as -> if not integer & 1:
return False
for divisor in xrange[3, int[math.sqrt[integer]] + 1, 2]:
if integer % divisor == 0:
return False
return True
54.2K4 Huy hiệu vàng49 Huy hiệu bạc135 Huy hiệu đồngJun 17, 2017 at 20:26
hjpotter92hjpotter92hjpotter92
Bạn không cần phải tạo một danh sách. Chỉ lặp đi lặp lại trên các ước số tiềm năng:
21 gold badge22 silver badges48 bronze badgesimport math
def is_prime[n]:
if n % 2 == 0 and n > 2:
return False
for i in range[3, int[math.sqrt[n]] + 1, 2]:
if n % i == 0:
return False
return True
\ $ \ endgroup \ $
3
\ $ \ beingroup \ $
Để bắt đầu, bạn hoàn toàn không cần
import math
def is_prime[n]:
if n % 2 == 0 and n > 2:
return False
for i in range[3, int[math.sqrt[n]] + 1, 2]:
if n % i == 0:
return False
return True
0: quyết định rằng con số là tổng hợp có thể được thực hiện khi đang bay, ngay khi một số phần còn lại trở thành 0. Nếu không ai trong số họ là 0, bạn sẽ biết rằng số đó là số nguyên tố:
thực sự là những gì mã của bạn đang làm, nhưng không có danh sách và không có trường hợp đặc biệt cho
def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
7.Jun 17, 2017 at 18:28
Điều đó nói rằng, tất nhiên thuật toán có thể được cải thiện rất nhiều, nhưng nó vượt quá điểm của bài tập này.Daniel
Đã trả lời ngày 17 tháng 6 năm 2017 lúc 18:312 gold badges15 silver badges40 bronze badges
\ $ \ endgroup \ $
\ $ \ beingroup \ $
Để bắt đầu, bạn hoàn toàn không cần
import math
def is_prime[n]:
if n % 2 == 0 and n > 2:
return False
for i in range[3, int[math.sqrt[n]] + 1, 2]:
if n % i == 0:
return False
return True
0: quyết định rằng con số là tổng hợp có thể được thực hiện khi đang bay, ngay khi một số phần còn lại trở thành 0. Nếu không ai trong số họ là 0, bạn sẽ biết rằng số đó là số nguyên tố:for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
0thực sự là những gì mã của bạn đang làm, nhưng không có danh sách và không có trường hợp đặc biệt cho
def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
7.
Điều đó nói rằng, tất nhiên thuật toán có thể được cải thiện rất nhiều, nhưng nó vượt quá điểm của bài tập này.
Đã trả lời ngày 17 tháng 6 năm 2017 lúc 18:3113 gold badges131 silver badges235 bronze badges
vnpvnpJun 18, 2017 at 16:39
\ $ \ endgroup \ $
\ $ \ beingroup \ $
Để bắt đầu, bạn hoàn toàn không cần
import math
def is_prime[n]:
if n % 2 == 0 and n > 2:
return False
for i in range[3, int[math.sqrt[n]] + 1, 2]:
if n % i == 0:
return False
return True
0: quyết định rằng con số là tổng hợp có thể được thực hiện khi đang bay, ngay khi một số phần còn lại trở thành 0. Nếu không ai trong số họ là 0, bạn sẽ biết rằng số đó là số nguyên tố:for a in range[a, num]:
if a % num == 0:
print['not prime']
break
else: # loop not exited via break
print['prime']
1thực sự là những gì mã của bạn đang làm, nhưng không có danh sách và không có trường hợp đặc biệt cho
def is_prime[n]:
for i in range[3, n]:
if n % i == 0:
return False
return True
7.Dec 17, 2018 at 15:57
\ $ \ endgroup \ $
1