Salve a tutti, sempre io a rompere, ma sarà l'ultima volta, promesso.
Mi serviva una minuscola mano che mi spiegasse "in modo informatico" (ossia perchè accade quel che accade, od ancora in parole povere: perchè è stato scritto così), questa parte di codice:
codice:
{
 res = primo();
 if (res) return res;
 cout << "\nPremi c per continuare o qualunque altro tasto per terminare. ";
 cin >> again;
 }
facente parte dell'intero codice qui riportato:

codice:
 #include <iostream>
 #include <stdlib.h>
 using namespace std;

 int primo()
 {
 long long p;
 int divisori = 0;
 cout << "Digita un numero intero positivo: \n\n", cin >> p;
 if (p < 0)
 cout << "\nNon fare il furbetto, voglio un numero positivo!\n\n";
 else if (p < 2)
 cout << "\nQuesto non e' un numero primo.\n\n";
 else if (p==2 || p==3)
 cout<<"\nQuesto è uno dei più piccoli numeri primi!\n\n";
 else {
 for (int q = 2; q <= p/2; q++)
 if (p%q == 0) {
 cout <<'\n' << p << " = " << q << " * " << p / q << endl;
 divisori++;
 }
 if (divisori > 0)
 cout <<"\nQuesto dimostra che "<< p <<" non e un numero primo.\n\n"; 
 else
 cout <<"\n"<< p <<" e' un numero primo!\n\n";
 }
 return 0;
 }
 
 int main()
 {
 int res;
 char again;
 do
 {
 res = primo();
 if (res) return res;
 cout << "\nPremi c per continuare o qualunque altro tasto per terminare. ";
 cin >> again;
 } 
 while (again == 'c');
 return 0;
 }
Volevo inoltre sapere se a livello di scrittura va bene o fa schifio Grazie a tutti quanti per l'immensa disponibilità!!