Nel for che utilizzi
for (int d = 2; d <= intero; d++)
potresti anche utilizzare intero/2.
Ad esempio se stai provando 50, è inutile che vai a testare il resto per numeri maggiori di 25 perché il test (il tuo if) fallirà sempre.
In questo modo computazionalmente è più leggero.

Ciao.