Số nguyên tố

Xem dạng PDF

Gửi bài giải

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

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Số nguyên tố là số chỉ chia hết cho ~1~ và chính nó. Trong một buổi dã ngoại của trường, bất ngờ TMB bị thầy giáo đố một câu như sau: "Một số có dạng ~p^{q}~ là lũy thừa cao của một số nguyên tố khi và chỉ khi ~p~ là một số nguyên tố và ~q > 1~. Thầy sẽ cho em một số ~N~ bất kỳ và em hãy cho biết đó có phải là lũy thừa cao của một số nguyên tố hay không? ". Không phải lúc nào cũng mang theo máy tính bên mình, đây là lúc TMB cần bạn.

Yêu cầu: Cho số ~N~, hãy giúp TMB trả lời câu đố của thầy giáo, nếu ~N~ là lũy thừa cao của một số nguyên tố thì in ra ~2~ số ~p~ và ~q~ tương ứng, nếu không thì ghi ~0~.

Input

  • ~1~ dòng duy nhất chứa ~n~

Output

  • ~1~ dòng duy nhất là kết quả

Giới hạn

~n \le 10^{18}~

Sample Input 1

27

Sample Output 1

3 3

Sample Input 2

10

Sample Output 2

0

Bình luận

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



  • -1
    hieuhfgr  đã bình luận lúc 13, Tháng 3, 2024, 6:28

    cho em hỏi bài này in ra 1 trong những TH thỏa mãn hay sao ạ T_T


  • 62
    YugiHackerKhongCopCode  đã bình luận lúc 16, Tháng 12, 2021, 11:05

    Spoil thuật không miller rabin

    Chia thành 2 trường hợp

    q>=3

    p <= 10^6

    Duyệt qua các số từ 2 đến 10^6, nếu n%i == 0 và i^q == n thì in ra kết quả (điều kiện là số mũ phải > 1)

    q = 2

    x = sqrt(n). Nếu x * x == n thì x là số nguyên tố và là kết quả

    chứng minh x là số nguyên tố:

    n = x * x, n <= 10^18

    => x<=10^9

    n không chia hết cho các số từ 2 đến 10^6

    => x không chia hết cho các số từ 2 đến 10^6

    => x là số nguyên tố


  • 12
    SPyofgame  đã bình luận lúc 7, Tháng 10, 2021, 15:06

    Unofficial Solution

    https://hackmd.io/@Editorial-Slayers/c11prime - Click