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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

bool isPrime(long long n)
{
	long long k = 2;
	if (n == 1) return false;
	while (k * k <= n)
	{
		if ((n % k) == 0) {
            //cout << n << "jest podzielna przez " << k << endl;
			return false;
		}
		else k++;
	}
	//cout << n << "jest pierwsza" <<endl;
	return true;
}

int main()
{
    string wejscie = "";
    cin >> wejscie;
    unsigned int pos = 0;
    int cyfra_przed, cyfra_po, cyfra_ostatnia;
    long long liczba_przed, liczba_po;
    while (pos < wejscie.length()-1)
    {
        pos++;
        liczba_przed = atoll(wejscie.substr(0, pos).c_str());
        liczba_po = atoll(wejscie.substr(pos, wejscie.length()).c_str());
        cyfra_przed = atoi(wejscie.substr(pos-1, 1).c_str());
        cyfra_po = atoi(wejscie.substr(pos, 1).c_str());
        cyfra_ostatnia = atoi(wejscie.substr(wejscie.length()-1, 1).c_str());
        //cout << "przed:" << liczba_przed << " za:" << liczba_po << endl;
        //cout << "cyfra przed:" << cyfra_przed << " cyfra po:" << cyfra_po << endl;

        if (liczba_przed!=2 && cyfra_przed == 2) {
            //cout << "---skaczemy bo 2" << endl;
            continue;
        }
        if (liczba_po!=2 && cyfra_ostatnia == 2) {
            //cout << "---skaczemy bo ostatnia parzysta i nie 2" << endl;
            continue;
        }
        if (cyfra_po == 0){
            //cout << "---skaczemy bo 0" << endl;
            continue;
        }
        if (cyfra_przed == 0 || cyfra_przed == 4 || cyfra_przed == 6 || cyfra_przed == 8 ){
            //cout << "---skaczemy bo parzyscie" << endl;
            continue;
        }
        if (cyfra_ostatnia == 0 || cyfra_ostatnia == 4 || cyfra_ostatnia == 6 || cyfra_ostatnia == 8 ){
            //cout << "---skaczemy bo ostatnia parzysta" << endl;
            continue;
        }
        if (isPrime(liczba_przed) && isPrime(liczba_po))
        {
            cout << "TAK";
            exit(0);
        }
    }
    cout << "NIE";
    return 0;
}