Pewnie masz rację, chociaż nie jestem matematykiem. Zauważ natomiast, że w zadaniu autor się pyta o to czy liczba jest liczbą pierwszą [TAK], czy nią nie jest [NIE]. Natomiast nie obchodzi go zupełnie czy jest złożoną czy nie
czyż nie? Dodatkowo przyjżyj się uważnie przykładowi w zadaniu EXEMPLE i outputowi. Czy autor dla 1 [jedynki] “wychodzi” czy nie?
Ta dziwna konstrukcja, przy każdej większej liczbie pierwszej, będzie “dawała” dowolnie duże wartości, dużo większe od maxInt.Można by powiedzieć, że ta konstrukcja bardzo przypomina konstrukcję n! [n silnia], ale oczywiście nią nie jest.
Praca domowa dla chętnych, przy jakiej najmniejszej liczbie pierwszej nastąpi przepełnienie INT.? 
No i drobne uwagi.
W C++ nie używa się match.h tylko cmath
Zamiast liczyś sqrt, można np tak:
for (i = 2; i*i <= liczba; i++)
i wtedy biblioteka cmath jest zbędna.
Warto testować swój kod na ideone.com: https://ideone.com/Dhn0yD, a także czytać wątek [wiem, że długaśny] a nie tylko się przyklejać [bardzo dobrze, że dbasz o środowisko i starasz się nie zaśmiecać]