close
Content

一個比 1 大的整數如果只有 1 和他本身自己共 2 個因數,我們稱這個數為質數(prime number)。多年來質數一直被數學家們研究著。質數也常被應用在密碼學和編碼理論中。

那麼你曾經把質數倒轉過來嗎?對大部分的質數來說,你將會得到一個組合數(例如:43 變成 34)現在,我們要定義 Emirp(就是把 Prime 反過來拼):如果你把一個質數反過來之後,他仍然是一個質數,並且和原來那個質數不同,那我們就稱這個數為 emirp number。例如:17 是一個emirp,因為 17 和 71 都是質數。在這個問題中,你必須要決定某一個整數 N 是非質數,質數,或 emirp。你可以假設 1<N<1000000。

Input
輸入的每一行測試資料有 1 個整數 N
Output

對每一輸入 N,輸出以下的訊息:

1. "N is not prime.",如果 N 不是一個質數

2. "N is prime.",如果 N 是一個質數,但是不是一個 Emirp

3. "N is emirp.",如果 N 是一個 emirp

Sample Input #1
17
18
19
179
199
131
Sample Output #1
17 is emirp.
18 is not prime.
19 is prime.
179 is emirp.
199 is emirp.
131 is prime.

python:

import math
"""這邊是判斷質因數的優化方法"""
def prime(n):
    f=1#0為合數,1為質數
    if(n==2 or n==3):f=1
    if(n%2==0 or n%3==0):f=0
    for i in range(6,math.floor(n**0.5)+6,6):
        if(n%(i+1)==0 or n%(i-1)==0):f=0
    return f
 
from sys import stdin
for sss in stdin:
    n=int(sss)
    if(prime(n)==0):
        print(f'{n} is not prime.')
    else:
        nn=int(str(n)[::-1])
        if(nn==n):print(f'{n} is prime.')
        else:
            if(prime(nn)==0):
                print(f'{n} is prime.')
            else:
                print(f'{n} is emirp.')
arrow
arrow
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()