Jest kilka rzeczy źle:
1. Powinno być
#include <iostream>
#include <math.h>
//bibliotego math.h jest potrzebna, bo korzystamy z funkcji sqrt
2. pętla while powinna być z nawiasami, czyli
while(warunki)
{
jakieś instrukcje
}
3. Warunek if oraz else powinny być poza pętlą while, bo nie ma sensu drukować komunikatów w każdej iteracji, poza tym jeśli liczba n będzie podzielna przez 2 to pętla while wcale nie startuje i wtedy nic by nie było drukowane, więc
while(warunki)
{
}
if (dzielnik>sqrt(n))
cout << "\n\nPIERWSZA\n\n";
else
cout << "\n\nZLOŻONA\n\n";
4. Jak widać powyżej, te nawiasy {.} przy if nie są potrzebne, bo instrukcja jest w jednej linijce, jeśli już, to oddzielnia nawiasy dla if i dla else
Warunek dzielnik <= sqrt(n) jest dlatego, że nie ma sensu sprawdzać dzielników, które są większe od pierwiastka z liczby. Jeżeli pierwszym dzielnikiem jest k=sqrt(n), czyli k jest liczbą pierwszą, to znaczy, że nasza liczba jest postaci k*k i innych dzielników nie ma, natomiast jeśli k nie jest dzielnikiem liczby n, to powyżej k, już z pewnością ich nie będzie. Oczywiście jeśli k nie musi być liczbą pierwszą, ale wtedy nasz program zatrzyma się już na wcześniejszym etapie.
pozdrawiam