Hej ,to mój kolejny post związany z programem wyznaczającym liczby pierwsze ,są one wypisywane w kolorze zielonym a reszta normalnie . Napisałem ten post bo chciał bym się zapytać o jakość kodu oraz jakie według was mogę wprowadzić jeszcze poprawki . Mam też pytanie czy można napisać taki algorytm sposobem rekurencyjnym ?.
Jestem dość kiepski w opracowywaniu algorytmów więc będę wdzięczny za wszelkie komentarze i rady . A oto kod :
#include <iostream> #include <vector> #include <windows.h> #include <conio.h> using namespace std; vector<int>primeN; void colors_classic(){ HANDLE hOut; hOut = GetStdHandle( STD_OUTPUT_HANDLE ); SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY ); } void colors_prime(){ HANDLE hOut; hOut = GetStdHandle( STD_OUTPUT_HANDLE ); SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY ); } void prime_numbers(int counter) { if(counter==1) { colors_classic(); cout<<counter<<""; } if(counter==2) { colors_prime(); primeN.push_back(counter); cout<<counter<<""; } else { int mod; for(int i=primeN.size()-1; i>=0; i--) { mod = counter%primeN[i]; if(mod==0) { colors_classic(); cout<<counter<<""; break; } } if(mod==1) { colors_prime(); cout<<counter<<""; primeN.push_back(counter); } } } void algorithm_loop() { colors_classic(); int n = 0; int counter = 0; cout<<"podaj zakres : "; cin>>n; cout<<endl; while(counter!=n) { counter++; prime_numbers(counter); } colors_classic(); } int main() { algorithm_loop(); getch(); return 0; }