THIEUNHI203 - PT TỔNG 2 SỐ NGUYÊN TỐ

Xem dạng PDF

Gửi bài giải

Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Tuyển chọn các bài code thiếu nhi v24
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Phân tích số n thành tổng của 2 số nguyên tố. Nếu có nhiều cách phân tích, chọn cách phân tích thành tổng 2 số nguyên tố gần nhau nhất. n ≤ 10^7

Ví dụ:

INPUT
Copy
18
OUTPUT
Copy
7 11

Nguồn sách


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    nganth  đã bình luận 2:21:51 sa, 12/08/2025 chỉnh sửa

    sàng nguyên tố đến n, duyệt i từ n//2 đến 2. Nếu f[i] và f[n-i] đều bằng true thì in i và n-i


  • 0
    Lam2012  đã bình luận 3:28:08 ch, 24/07/2025

    mọi người vào facebook fake mình tạo nhé:

    Copy
    https://onecompiler.com/html/43rn9qsx8
    

  • 2
    NguyenAnPhu2013  đã bình luận 2:37:55 ch, 05/12/2024

    mã py của tớ các bạn tham khảo nhé:

    Copy
    def sieve_of_eratosthenes(limit):
        is_prime = [True] * (limit + 1)
        is_prime[0] = is_prime[1] = False
        for i in range(2, int(limit**0.5) + 1):
            if is_prime[i]:
                for j in range(i * i, limit + 1, i):
                    is_prime[j] = False
        return is_prime
    
    def find_closest_prime_sum(n):
        is_prime = sieve_of_eratosthenes(n)
    
        closest_pair = None
        min_difference = float('inf')
    
        for p1 in range(2, n // 2 + 1):
            if is_prime[p1] and is_prime[n - p1]:
                p2 = n - p1
                if abs(p1 - p2) < min_difference:
                    closest_pair = (p1, p2)
                    min_difference = abs(p1 - p2)
    
        return closest_pair
    n = int(input())
    result = find_closest_prime_sum(n)
    print(result[0],result[1])