MSzopa

12.1.2022 C++ Rozszerzone o primy

Jan 14th, 2022 (edited)
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.96 KB | None | 0 0
  1. // 12_01_2022.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
  2. //
  3.  
  4. #include <iostream>
  5. #include <string>
  6. #include <fstream>
  7. #include <vector>
  8. using namespace std;
  9. //string ToSystem(int a, int system) {
  10. //    string s = "";
  11. //    while (a != 0) {
  12. //        if (a % system >= 10) {
  13. //            s += (char)(65 - 10 + a % system);
  14. //        }
  15. //        else
  16. //            s += to_string(a % system);
  17. //        a /= system;
  18. //    }
  19. //    string ret = "";
  20. //    for (int i = s.length() - 1; i >= 0; i--) {
  21. //        ret += s[i];
  22. //    }
  23. //    return ret;
  24. //}
  25. //string ToBinary(int a) {
  26. //    string ret = "";
  27. //    while (a > 0) {
  28. //        if(a%2)
  29. //    }
  30. //}
  31. bool CzyLiczbaPierwsza(unsigned int a) {
  32.     if (a > 2) {
  33.         if (a % 2 == 0)
  34.             return false;
  35.         int i = 2, max = std::sqrt(a);
  36.         do {
  37.             if (a % i == 0)
  38.                 return false;
  39.             i++;
  40.         } while (i <= max);
  41.         return true;
  42.     }
  43.     else
  44.         return a == 2;
  45. }
  46. std::string ToSystem(int a, int s) {
  47.     std::string ret;
  48.     while (a > 0)
  49.     {
  50.         // 48 - 0's ascii code
  51.         ret += (a % s) + 48;
  52.         a /= s;
  53.     }
  54.     return ret;
  55. }
  56. //int ToSystem2(int a) {
  57. //    string ret = "";
  58. //
  59. //}
  60. std::vector<int> FibV = { 0,1 };
  61. int Fib(unsigned int n) {
  62.     int max_n = FibV.size();
  63.     int a = n - max_n;
  64.     for (int i = 0; i <= a; i++) {
  65.         FibV.push_back(FibV[max_n - 1] + FibV[max_n - 2]);
  66.         max_n++;
  67.     }
  68.     return FibV[n];
  69. }
  70. int main()
  71. {
  72.     cout << Fib(40);
  73.     ofstream binarny_out, odpowiedzi_out;
  74.     binarny_out.open("binarnie.txt");
  75.     odpowiedzi_out.open("wyniki.txt");
  76.     string tab[40];
  77.     vector<string> liczbyz6jedynek;
  78.     for (int i = 1; i <= 40; i++) {
  79.         tab[i-1] = ToSystem(Fib(i),2);
  80.         int c_jedynek = 0;
  81.         for (char c : tab[i-1])
  82.             if (c == '1')
  83.                 c_jedynek++;
  84.         if (c_jedynek == 6)
  85.             liczbyz6jedynek.push_back(tab[i-1]);
  86.     }
  87.     int max_b = tab[40 - 1].size();
  88.     for (int i = 1; i <= 40; i++) {
  89.         int c = max_b -tab[i-1].size();
  90.         string prefix = "";
  91.         for (int a = 0; a < c; a++)
  92.             prefix += "0";
  93.         //tab[i-1] = prefix + tab[i-1];
  94.         binarny_out << tab[i-1] << endl;
  95.     }
  96.     binarny_out.close();
  97.     // 1
  98.     odpowiedzi_out << "1" << endl;
  99.     odpowiedzi_out << "F10: " << Fib(10) << endl;
  100.     odpowiedzi_out << "F20: " << Fib(20) << endl;
  101.     odpowiedzi_out << "F30: " << Fib(30) << endl;
  102.     odpowiedzi_out << "F40: " << Fib(40) << endl;
  103.     odpowiedzi_out << "3" << endl;
  104.     for (string liczba : liczbyz6jedynek) {
  105.         odpowiedzi_out << liczba << endl;
  106.     }
  107.     odpowiedzi_out << "4" << endl;
  108.     for (int i = 1; i <= 40; i++) {
  109.         int f = Fib(i);
  110.         if(CzyLiczbaPierwsza(f))
  111.             odpowiedzi_out<<f<<std::endl;
  112.     }
  113.     odpowiedzi_out.close();
  114.     binarny_out.close();
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment