Código
#include <iostream> #include <math.h> class CaracteristicaNumeros { int n; //declarando n se resolvio el problema, los 2 for funcionan como quiero public: char calc_primo(int n) { int x; if (n > 1) { for (x = 2; x <= n-1; x++) { if (n % x == 0 && n == x) return 'n'; if (n % x == 0 && n != x) return 's'; } /* si cambio el for por este me dice que los multiplos de 9 y los que terminan en 5 son primos; pero 9 % 3 == 0 y 15 % 5 == 0 ? al final use este for: for (x = 2; x <= n-1; x++) { if (n % x == 0) { return 'n'; break; } } return 's'; */ } else return 'n'; } }; int _main() { int a; CaracteristicaNumeros objCN; using namespace std; do { cin >> a; cout << objCN.calc_primo(a) << "\n"; }while(1==1); return 0; }