Allora, ho pensato a questo..
Se un numero è pari, a meno che non sia 2, è composto.
se invece è dispari, a meno che dividendolo per 3 o 5 o 7 dia resto 0, è primo.
(matematicamente è cosi, e sto cercando di scriverlo)
Ho scritto questo codice, ma mi dà sempre numero primo.
te vedi qualche errore? non capisco..
#include <iostream>
using namespace std;
int main(){
int n;
int div=3;
int r=1;
cin>>n;
if (n%2!=0);
{
while ((div<=7)|(r=0)){
r==n÷
div= div +2;
}
}
if ((r!=0)|(n=2)){
cout<<"primo";
}
else{
if((n%2==0)&(n!=2)) {
cout<<"composto";
}
}
return 0;
}