Hướng dẫn prime number python stack overflow - số nguyên tố tràn ngăn xếp python

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 \ $

  1. 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.
    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
    
    2

  2. 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.

    if 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ố:
  3. 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.
  4. Đ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.
  5. Đã 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:

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
21 gold badge22 silver badges48 bronze badges

\ $ \ 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']
0

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.

Đ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']
1

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.Dec 17, 2018 at 15:57

\ $ \ endgroup \ $

1

Làm thế nào để bạn tính toán số nguyên tố trong Python?

Các số 2, 3, 5, 7, v.v. là số nguyên tố vì chúng không có bất kỳ yếu tố nào khác. Để tìm một số nguyên tố trong Python, bạn phải lặp lại giá trị từ đầu đến cuối bằng cách sử dụng vòng lặp và cho mỗi số, nếu nó lớn hơn 1 giá trị đó.iterate the value from start to end using a for loop and for every number, if it is greater than 1, check if it divides n. If we find any other number which divides, print that value.

Làm thế nào để bạn tìm thấy số nguyên tố trong stackoverflow?

Approach..
Thêm một bộ đếm để kiểm tra số lần số đầu vào chia hết cho I [và có 0 [không] còn lại].
Nếu bộ đếm là = 2, thì đầu vào là số nguyên tố, nếu không không phải là nguyên tố ..

1 là một số python số nguyên tố?

Điểm cần nhớ: Số 1 không phải là nguyên tố cũng không tổng hợp.Các số có nhiều hơn hai yếu tố được gọi là số tổng hợp.Hệ số của các số phi nguyên tắc cho chúng ta nhiều hơn hai yếu tố.Ví dụ 10 là chia hết cho chính 1, 2, 5 và 10.The number 1 is neither prime nor composite. Numbers that have more than two factors are called composite numbers. Factorization of Non-prime numbers gives us more than two factors. For example 10 is divisible by 1, 2, 5 and 10 itself.

Làm thế nào để bạn in số nguyên tố từ 1 đến 100 trong Python?

num1 = input ["đầu vào A số:"] num2 = input ["nhập số khác:"] cho x trong phạm vi [num1, num2]: prime = true cho i trong phạm vi [2, x]: if [x%i== 0]: Prime = false if prime == true: in x in "Xong ......" Nó phân loại 1 là số nguyên tố, không chính xác.

Bài Viết Liên Quan

Chủ Đề