PON - Prime or Not


Given the number, you are to answer the question: "Is it prime?"

Solutions to this problem can be submitted in C, C++, Pascal, Perl, Python, Ruby, Lisp, Hask, Ocaml, Prolog, Whitespace, Brainf**k and Intercal only.

Input

t – the number of test cases, then t test cases follows. [t <= 500]
Each line contains one integer: N [2 <= N <= 2^63-1]

Output

For each test case output string "YES" if given number is prime and "NO" otherwise.

Example

Input:
5
2
3
4
5
6

Output:
YES
YES
NO
YES
NO

hide comments
dkkv0000: 2019-05-18 11:08:42

useful links to solve the problem
1) https://cp-algorithms.com/algebra/primality_tests.html
2) https://www.geeksforgeeks.org/multiply-large-integers-under-large-modulo/

abhinav_kr: 2019-05-14 09:00:56

Carmichael numbers may be giving you WA. Read this
https://crypto.stanford.edu/pbc/notes/numbertheory/millerrabin.html

exesharkx: 2019-02-10 14:57:27

For Overflow use boost library :)

manjeet_: 2018-07-17 09:55:59

along with Fermat and Miller Rabin read this too , https://www.geeksforgeeks.org/multiply-large-integers-under-large-modulo/

michulo: 2018-06-29 15:29:54

Hey is the cluser much slower then i5 ? it takes 3 sec at my laptop and "time limit exceeded" at spoj. Is it posible ?

reinomumei: 2018-06-05 17:40:10

first time using Miler Rabin
second using Fermat
significant different in number of lines and effort

chetan4060: 2018-05-25 21:38:16

both miller rabin and fermat's test works but remember for overflow of (a*b)%mod:)

vishwanath_26: 2017-10-24 21:12:29

Test cases may contain Carmichael numbers so use Miller Rabin

wisdommm: 2017-10-04 09:55:40

You need use both quick_pow and quick_multiply.

amulyagaur: 2017-07-25 11:25:37

accepted in 0.02 sec with only 2 iterations in fermat's test


Added by:Roman Sol
Date:2005-01-24
Time limit:21s
Source limit:5000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ADA95 ASM32 BASH CSHARP CLPS D ERL FORTRAN ICON JAVA JS-RHINO LUA NEM NICE PHP PIKE ST
Resource:ZCon 2005