1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <cmath>

using namespace std;
bool isPrime(long long n);

int main()
{
  long long n;
  long long divider = 10;
  cin >> n;

  while((long long)(n / divider) > 0)
  {
    long long firstNumber;
    long long secondNumber;

    firstNumber = (long long)(n / divider);
    secondNumber = (long long)(n % divider);
    //cout << firstNumber << ", " << isPrime(firstNumber) <<", " << secondNumber << ", " << isPrime(secondNumber) << ", "<< divider << "\n";
    if(secondNumber >= divider / 10)
    {
      if(isPrime(firstNumber) && isPrime(secondNumber))
      {
        cout << "TAK\n";
        return 0;
      }
    }
    divider *= 10;
  }
  cout << "NIE\n";
  return 0;
}

bool isPrime(long long n)
{
  if(n == 2) return true;
  if(n == 1 || (n % 2 == 0)) return false;

  long long limit = sqrt(n + 1);
  for(long long i = 3; i < limit; i+=2)
  {
    if(n % i == 0) return false;
  }

  return true;
}