Tengo que hacer un programa en C++ (usando Visual C++) que me diga si un número es primo o nó, por medio de una clase. Todo bien si en número no es primo pero cuando lo es ne devuelve simbolos raros en vez de 's'. Porfavor ayuda, no se que estoy haciendo mal
Código (cpp) [Seleccionar]
#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;
}