import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class PrimeIndexFinder {
private static int total=0;
public static void main(String[] args) {
try{
Scanner input=new Scanner(System.in);
int size=input.nextInt();
int[] numbers=new int[size];
if(2<=size && size<100){
for(int i=0;i<size;i++){
numbers[i]=input.nextInt();
}
Map<Integer, Integer> elementIndexMap=getPrimeIndex(numbers);
System.out.println(total);
total=0;
for(Map.Entry<Integer, Integer> entry:elementIndexMap.entrySet()){
System.out.println(entry.getKey()+" "+entry.getValue());
}
}else{
throw new Exception("Invalid Input");
}
}catch (Exception e) {
System.out.println(e+" : "+e.getMessage());
}
}
public static Map<Integer, Integer> getPrimeIndex(int[] input){
Map<Integer, Integer> elementIndexMap=new HashMap<Integer, Integer>();
for(int i=0;i<input.length;i++){
if(isPrime(i) && isPrime(input[i])){
total++;
elementIndexMap.put(input[i], i);
}
}
return elementIndexMap;
}
private static boolean isPrime(int num) {
if (num < 2) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
for (int i = 3; i * i <= num; i += 2)
if (num % i == 0) return false;
return true;
}
}
5