C++ :: Aufgabe #339 :: Lösung #1
1 Lösung
#339
Palindromische Primzahlen
Anfänger - C++
von hollst
- 29.03.2021 um 21:12 Uhr
Man erzeuge eine Liste aller Primzahle <= 1 Milliarde (1E+9), die in dezimaler Präsentation umgekehrt gelesen ebenfalls eine Primzahl sind (Palindromische Primzahlen). Z. B. 13; 31 ist ebenfalls Primzahl.
Viel Spaß!
Viel Spaß!
#1
von JKooP (18090 Punkte)
- 31.03.2021 um 10:40 Uhr
C++ 17
C-Code
#include <iostream> #include <vector> #include <tuple> using namespace std; bool is_prime(int n) { if (n == 0 || n == 1) return false; if (n == 2) return true; for (int i = 2; i <= (int)ceil(sqrt(n)); i++) if (n % i == 0) return false; return true; } int get_rev_num(int num) { auto rev = 0; while (num != 0) { rev *= 10; rev += (num % 10); num /= 10; } return rev; } vector<tuple<int, int>> get_prime_list(int max) { vector<tuple<int, int>> v; for (auto i = 10; i <= max; i++) { if (is_prime(i)) { auto pr = get_rev_num(i); if (is_prime(pr)) v.push_back(make_tuple(i, pr)); } } return v; } int main() { for (const auto &i : get_prime_list(1000)) cout << get<0>(i) << ", " << get<1>(i) << endl; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1