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
48
49
50
51
52
#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

bool pierwsza(long long u){
	if(u == 2) return true;
	if(u == 1 || u == 0) return false;
	long long s = sqrt(u);
	for(long long i = 2; i <= s; i++){
		//printf("   testuje %d\n", i);
		if(u % i == 0)
			return false;
	}
	return true;
}

int char2int(char c){
	return int(c) - int('0');
}

long long str2long(char* str, int begin, int end){
	long long w = char2int(str[begin]);
	for(int i = begin+1; i <= end; i++){
		w *= 10;
		w += char2int(str[i]);
	}
	//printf("Zwracam %d\n", w);
	
	return w;
}

int main() {
	char liczba[15];
	scanf("%s", liczba);
	int len = strlen(liczba);
	//printf("%s %d" ,liczba, len);
	for(int i = 1; i < len; i++){
		if(liczba[i] == '0')
			continue;
		//printf("Sprawdzam pozycje %d %d\n", i-1, i);
		if(pierwsza(str2long(liczba, 0, i-1)) && pierwsza(str2long(liczba, i, len-1))
		){
			printf("TAK\n");
			//printf("TAK %lld %lld\n", str2long(liczba, 0, i-1), str2long(liczba, i, len-1));
			return 0;
		}
	}
	printf("NIE\n");
	return 0;
}