#include <iostream>
#include <math.h>
bool czyPierwsza(long long x){
int i = 2;
if (x == 1) {
return false;
}
while (i<=sqrt(x)) {
if (x%i == 0) {
return false;
}
i++;
}
return true;
}
int main(int argc, const char * argv[]) {
using namespace std;
bool czyPoprzednieZero = false;
long long liczba, i=10;
cin>> liczba;
bool czyBylo = false;
if (liczba <= 21) {
cout<<"NIE";
czyBylo = true;
}
else if(liczba%10 == 0){
cout<<"NIE";
czyBylo = true;
}
else{
while (i<liczba) {
long long koniec = liczba % i;
long long poczatek = (liczba - koniec) / i;
if (!czyPoprzednieZero && czyPierwsza(koniec) && czyPierwsza(poczatek)) {
cout<<"TAK";
czyBylo = true;
break;
}
if(poczatek % 10 == 0){
czyPoprzednieZero = true;
int j = 0;
while ((poczatek % (10^j)) == 0) {
j++;
i=i*10;
}
}
else{
czyPoprzednieZero=false;
i*=10;
}
}
}
if (!czyBylo) {
cout<<"NIE";
}
return 0;
}
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 | #include <iostream> #include <math.h> bool czyPierwsza(long long x){ int i = 2; if (x == 1) { return false; } while (i<=sqrt(x)) { if (x%i == 0) { return false; } i++; } return true; } int main(int argc, const char * argv[]) { using namespace std; bool czyPoprzednieZero = false; long long liczba, i=10; cin>> liczba; bool czyBylo = false; if (liczba <= 21) { cout<<"NIE"; czyBylo = true; } else if(liczba%10 == 0){ cout<<"NIE"; czyBylo = true; } else{ while (i<liczba) { long long koniec = liczba % i; long long poczatek = (liczba - koniec) / i; if (!czyPoprzednieZero && czyPierwsza(koniec) && czyPierwsza(poczatek)) { cout<<"TAK"; czyBylo = true; break; } if(poczatek % 10 == 0){ czyPoprzednieZero = true; int j = 0; while ((poczatek % (10^j)) == 0) { j++; i=i*10; } } else{ czyPoprzednieZero=false; i*=10; } } } if (!czyBylo) { cout<<"NIE"; } return 0; } |
English