Algorithm


problem Link : https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1176 

An integer greater than 1 is called a prime number if its only positive divisors (factors) are 1 and itself. Prime numbers have been studied over the years by a lot of mathematicians. Applications of prime numbers arise in Cryptography and Coding Theory among others. Have you tried reversing a prime? For most primes, you get a composite (43 becomes 34). An Emirp (Prime spelt backwards) is a Prime that gives you a different Prime when its digits are reversed. For example, 17 is Emirp because 17 as well as 71 are Prime. In this problem, you have to decide whether a number N is Non-prime or Prime or Emirp. Assume that 1 < N < 1000000. Interestingly, Emirps are not new to NTU students. We have been boarding 199 and 179 buses for quite a long time! Input Input consists of several lines specifying values for N. Output For each N given in the input, output should contain one of the following: 1. ‘N is not prime.’, if N is not a Prime number. 2. ‘N is prime.’, if N is Prime and N is not Emirp. 3. ‘N is emirp.’, if N is Emirp.

Sample Input 17 18 19 179 199 Sample

Output 17 is emirp. 18 is not prime. 19 is prime. 179 is emirp. 199 is emirp

Code Examples

#1 Code Example with C Programming

Code - C Programming

 import java.util.*;
import java.math.BigInteger;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            BigInteger val = BigInteger.valueOf(n);
            StringBuilder sb = new StringBuilder(String.valueOf(n)).reverse();
            BigInteger reverseVal = new BigInteger(sb.toString());
            System.out.printf("%d is ",n);
            // miller-rabin probabilistic prime testing
            if(!val.isProbablePrime(10))
                System.out.println("not prime.");
            else if(!val.equals(reverseVal) && reverseVal.isProbablePrime(10))
                System.out.println("emirp.");
            else
                System.out.println("prime.");
        }
    }
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
17
18
19
179
199

Output

x
+
cmd
17 is emirp.
18 is not prime.
19 is prime.
179 is emirp.
199 is emirp.
Advertisements

Demonstration


UVA Online Judge solution -10235 - Simply Emirp - UVA Online Judge solution C,C++,Java 

Previous
UVA Online Judge solution - 10227 - Forest - UVA Online Judge solution C,C++,Java
Next
UVA Online Judge solution - 10249 - The Grand Dinner - UVA Online Judge solution C,C++,Java