Jak zrobić z tego programu sprawdzającego czy liczba jest pierwsza, żeby sprawdzała czy jest półpierwsza

ja myślę żeby raz podzielił a za drugim razem jak podzieli to jest półpierwsza (l półpierwsza to taka która jest iloczynem dwóch pierwszych. np.4, 6, 9, 10, 14, 15 w języku c++.
w miarę możliwości czytelne, może być też od nowa.

cały program do skopiowaia w razie czego;

#include
#include
using namespace std;

int main(int argc, char* argv)
{

int n;
int dzielnik;

cout << "Podaj liczbe ";
cin >> n;
dzielnik=2;

while ( ((n % dzielnik) != 0) && ((dzielnik <= sqrt(n))) )
{
dzielnik++;

if (dzielnik>sqrt(n))
cout << „pierwsza”;

else
cout << „zlozozna”;
}
}

jak zła kategoria to przepraszam ale jestem tu nowa i nieobeznana jeszcze

Nie znam terminu półpierwsza, ale z tego co piszesz to zamiast sprawdzać, czy dana liczba jest pierwsza musisz sprawdzić jej pierwiastek kwadratowy.

Do części to nie wystarczy.

np. 6 jest półpierwsza bo powstaje z mnożenia 2*3.


półpierwsza to taka która jest iloczynem „dowolnych” dwóch pierwszych

A… OK. Zrozumiałem, że chodzi o tą samą, jednak to co ty piszesz ma większy sens.

@ktosss1


https://main2.edu.pl/main2/courses/show/17/35/

Oczywiście pole do optymalizacji jest spore. Tak samo jak kodu na liczby pierwsze.