Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cmath>
- using namespace std;
- bool CzyPierwsza(int liczba) {
- if (liczba < 2)
- return false;
- if (liczba == 2)
- return true;
- for (int i = 2; i * i <= liczba; i++) {
- if (liczba % i == 0)
- return false;
- }
- return true;
- }
- int Odwroc(int liczba) {
- int ret = 0;
- //ile liczba ma cyfr
- int i = log10(liczba);
- while (liczba > 0) {
- int cyfra = liczba % 10;
- liczba /= 10;
- // ostatnia cyfra z cyfr
- ret += cyfra * pow(10, i--);
- }
- return ret;
- }
- bool P1(int liczba) {
- return liczba <= 5000 && liczba >= 100 && CzyPierwsza(liczba);
- }
- bool P2(int liczba) {
- return CzyPierwsza(Odwroc(liczba));
- }
- int SumaCyfr(int liczba) {
- int ret = 0;
- while (liczba > 0) {
- ret += liczba % 10;
- liczba /= 10;
- }
- return ret;
- }
- int N(int liczba) {
- do {
- liczba = SumaCyfr(liczba);
- } while (liczba >= 10);
- return liczba;
- }
- bool P3(int liczba) {
- return N(liczba) == 1;
- }
- int main()
- {
- cout << N(31699);
- const int liczbyC = 300;
- const int pierwszeC = 200;
- //const int liczbyC = 50;
- //const int pierwszeC = 50;
- ofstream p1;
- p1.open("wyniki4_1.txt");
- p1 << "4.1" << endl;
- ofstream p2;
- p2.open("wyniki4_2.txt");
- p2 << "4.2" << endl;
- ofstream p3;
- p3.open("wyniki4_3.txt");
- p3 << "4.3" << endl;
- ifstream liczby;
- liczby.open("liczby.txt");
- for (int i = 0; i < liczbyC; i++) {
- int liczba;
- liczby >> liczba;
- if (P1(liczba)) {
- p1 << liczba << endl;
- }
- }
- ifstream pierwsze;
- pierwsze.open("pierwsze.txt");
- int c_3 = 0;
- for (int i = 0; i < pierwszeC; i++) {
- int liczba;
- pierwsze >> liczba;
- if (P2(liczba)) {
- p2 << liczba << endl;
- }
- if (P3(liczba))
- c_3++;
- }
- p3 << c_3 << endl;
- p1.flush();
- p1.close();
- p2.flush();
- p2.close();
- p3.flush();
- p3.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment