#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; } |