#include <iostream> using namespace std; int y; int pot10(int x) { //podnosi 10 do danej potęgi y=10; for(int i=1; i<x; ++i) y*=10; return y; } bool pierwsza(int x){ //sprawdza czy liczba jest pierwsza if(x==1) return false; else if(x==2) return true; else if(x%2==0) return false; else { for(int i=3; i*i<=x; i+=2) { if(x%i==0) return false; } } return true; } int main() { long long int liczba; int licz=0; //zmienna przechowująca długość liczby (ilość jej cyfr) cin >> liczba; long long int liczba2 = liczba; int a, b; //liczby powstałe z podzielenia danej liczby while(liczba2!=0){ //szukanie długości liczby liczba2/=10; //za każdym wykonaniem pętli dzielimy liczbę przez 10 i zwiększamy licz ++licz; } for(int j=1; j<licz; j++) { //sprawdza możliwości utworzenia liczb a = liczba/pot10(j); //usuwa tą drugą liczbę poprzez obcinanie końcówki - powstaje 1. liczba if(a%10!=0) { //żeby potem nie chyciło liczby z zerem na początku dodajemy w 48. wersie j aby przeskoczyć to 0 if(pierwsza(a) == true) { b = liczba%pot10(j); //bierze końcówkę z liczby - powstaje 2. liczba if(pierwsza(b) == true){ cout << "TAK"; //jeśli obydwie są pierwsze wypisz tak return 0; } } } else j++; } 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 | #include <iostream> using namespace std; int y; int pot10(int x) { //podnosi 10 do danej potęgi y=10; for(int i=1; i<x; ++i) y*=10; return y; } bool pierwsza(int x){ //sprawdza czy liczba jest pierwsza if(x==1) return false; else if(x==2) return true; else if(x%2==0) return false; else { for(int i=3; i*i<=x; i+=2) { if(x%i==0) return false; } } return true; } int main() { long long int liczba; int licz=0; //zmienna przechowująca długość liczby (ilość jej cyfr) cin >> liczba; long long int liczba2 = liczba; int a, b; //liczby powstałe z podzielenia danej liczby while(liczba2!=0){ //szukanie długości liczby liczba2/=10; //za każdym wykonaniem pętli dzielimy liczbę przez 10 i zwiększamy licz ++licz; } for(int j=1; j<licz; j++) { //sprawdza możliwości utworzenia liczb a = liczba/pot10(j); //usuwa tą drugą liczbę poprzez obcinanie końcówki - powstaje 1. liczba if(a%10!=0) { //żeby potem nie chyciło liczby z zerem na początku dodajemy w 48. wersie j aby przeskoczyć to 0 if(pierwsza(a) == true) { b = liczba%pot10(j); //bierze końcówkę z liczby - powstaje 2. liczba if(pierwsza(b) == true){ cout << "TAK"; //jeśli obydwie są pierwsze wypisz tak return 0; } } } else j++; } cout << "NIE"; return 0; } |