¿Cuál es el programa más simple para encontrar números primos en C ++?

El programa más simple será seguir la propiedad de los números primos.
Un número primo es un número que es divisible por 1 y el número mismo.
Por lo tanto, dado un número, para encontrar si es primo o no, puede usar la siguiente función,

bool is_prime (int n)
{
int i, cuenta = 0;
si (n == 1)
falso retorno;
si (n == 2)
volver verdadero;
si (n% 2 == 0)
falso retorno;
para (i = 1; i <= n; i ++)
if (n% i == 0) cuenta ++;
if (cuenta == 2) // ¿Por qué?
volver verdadero;
más
falso retorno;
}

¿Por qué?
Te dije que un número primo es un número que es divisible por 1 y el número en sí. Entonces, si el recuento de divisores del número particular es 2, entonces es un número primo (La comprobación del divisor se realiza de [matemática] 1 [/ matemática] a [matemática] n [/ matemática]).

Si desea utilizar esta función para encontrar números primos en un rango dado (bajo, alto).

Iterar a través de baja-> alta. Pase todos los números del rango a la función is_prime() y verifique si es primo o no.
Puede optimizar aún más la función is_prime() .
No es necesario verificar hasta n para saber si es primo o no. No hay necesidad de contar los divisores. Verificando hasta que la raíz cuadrada de ese número en particular sea suficiente. La implementación a continuación verifica solo hasta la raíz cuadrada de ese número.

bool is_prime (int n)
{
int i, sq, cuenta = 0;
si (n == 1)
falso retorno;
si (n == 2)
volver verdadero;
si (n% 2 == 0)
falso retorno;
sq = sqrt (n);
para (i = 2; i <= sq; i ++)
if (n% i == 0) devuelve falso;
volver verdadero;
}

Pero este no es eficiente para encontrar números primos en un rango dado.
Para encontrar números primos en un rango dado, hay un algoritmo llamado Tamiz de Eratóstenes. Puedes referir eso. Como solicitó el programa más simple , escribí las dos funciones anteriores. El programa eficiente usará
Seive de eratóstenes o segmentado seive de eratóstenes.

Consulte los siguientes enlaces para leer más adelante:
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

http://primesieve.org/segmented_sieve.html

C ++ es un lenguaje de programación muy potente, puede desarrollar fácilmente programas de cualquier manera. Prime Number find en C ++ es muy fácil, puedes encontrar esto de muchas maneras. Pero aquí estoy, comparto un código fuente de este programa. Puede descargarlo fácilmente y probarlo con una mejor comprensión.

Los números primos son aquellos que son divisibles por 1 y su propio valor, pero no dividen ningún otro número. Como, 1,2,3,5,7,11,13. . . .. etc. También visite mi blog para obtener más códigos fuente y tutoriales de programación.
Programa C ++ para encontrar el número primo usando For Loop

#include
usando el espacio de nombres estándar;
#include
int main ()
{
int num, i, flag = 0;
cout << "Ingrese un entero positivo:";
cin >> num;
para (i = 2; i <= num / 2; ++ i)
{
si (num% i == 0)
{
bandera = 1;
rotura;
}
}
si (bandera == 0)
cout << "Este es un número primo";
más
cout << "Este no es un número primo";
getch ();
devuelve 0;
}

// Recursos para programadores y desarrolladores //

Probablemente no sea la versión más simple, pero lo suficientemente cercana:

#include
#include

// comprueba si x es primo; x debe ser positivo, por lo que unsigned int servirá
bool isPrime (unsigned int x)
{
si (x <2) // 0 y 1 no son primos
falso retorno;
si (x == 2)
volver verdadero; // 2 es

// primero verifica la división por 2: esto elimina TODOS los divisores pares
if (! (x% 2)) devuelve falso;
// ahora podemos verificar divisores impares que comienzan con 3
// y el divisor no puede ser mayor que sqrt (x)
unsigned int upper = sqrt (x);
for (unsigned int i = 3; i <= upper; i + = 2)
if (! (x% i)) // es divisible (x mod divisor == 0)
falso retorno; // entonces no es primo

volver verdadero; // si llegamos aquí, x es primo
}

int main ()
{
unsigned int start, end; // rango de números para verificar primo (inclusive)
printf (“Ingrese el rango de números para verificar [inicio final]:”);
scanf (“% u% u”, & start, & end);
// ¿ejecutamos algunos controles de cordura aquí? – los usuarios de naa son amables

for (unsigned int i = start; i <= end; ++ i)
if (isPrime (i))
printf (“% u \ n”, i);
printf (“hecho! Gracias por usar RangePrime: -) \ n”);

devuelve 0;
}

¡Espero que ayude!

Programa de números primos en C ++

El número primo es un número natural que es mayor que 1 y solo divisible por 1 o por sí mismo. Por ejemplo, 6 no es número primo porque es divisible por 2 y 3, 11 es número primo porque solo es divisible por 1 o por sí mismo. Aquí le mostraré el programa de números primos en C ++ de manera sencilla.

#include
#include
vacío principal()
{
int i, no;
clrscr ();
cout << "Ingrese cualquier número:";
cin >> no;
si (no == 1)
{
cout << "El número primo más pequeño es 2";
}
para (i = 2; i {
si (no% i == 0)
{
cout << "Este número no es número primo";
rotura;
}
}
si (no == i)
{
cout << "Este es el número primo";
}
getch ();
}

#include

usando el espacio de nombres estándar;

int main ()

{

int i, j, n, clave;

cout << "Ingrese su límite, es decir, hasta el cual no. quieres primer no. ”;

cin >> n;

para (i = 1; i <= n; i ++)

{

para (j = 1; j

{

si (i% j == 0)

clave = 1;

}

si (clave == 1)

cout << i << endl;

}

devuelve 0;

}

No voy a escribir ningún código, ya que no soy programador. Pero, tengo una idea de cómo puede proceder, que voy a compartir aquí.

Para verificar los números primos, solo necesitamos verificar los factores hasta la raíz cuadrada aproximada del número . Esto es útil cuando se supone que debemos verificar la primalidad de un número.

Para generar primos, digamos en el rango 2–10000, uno podría querer proceder así:

> comenzar en la corriente = 2

> cancelar todos los múltiplos de 2, ponerlos = 0

> avance 1, si el número no se cancela, actualice current = that no; de lo contrario, avance más hasta llegar a un número distinto de cero

> cancelar todos los múltiplos de la nueva corriente

> esto se hace hasta que la corriente se convierte solo mayor o igual a 100 (raíz cuadrada del número máximo en rango)

> Todos los números restantes distintos de cero son primos

Lo anterior debería funcionar teóricamente si lo codifica un programador decente, pero realmente no estoy seguro de la complejidad del tiempo …

El programa más simple es el siguiente (no el más eficiente, pero es simple):

bool is_prime (int n) {
para (int i = 2; i <= sqrt (n); i ++) {
if (n% i == 0) {
volver verdadero;
}
}
devuelve n> = 2;
}

Aquí está el ejemplo simple con código para un principiante
programa c ++ para encontrar números primos en un rango dado

otro ejemplo aquí
que toma la entrada y encuentra el número primo
Tutorial de programación en C ++ para principiantes

#include
usando el espacio de nombres estándar;

int Prime [300000], nPrime;
marca int [1234567];

tamiz vacío (int n) {
int i, j, límite = sqrt (n * 1.0) + 2;
marca [1] = 1;

para (i = 4; i <= n; i + = 2) {
marca [i] = 1;
}

Prime [nPrime ++] = 2;

para (i = 3; i <= n; i + = 2) {
if (! mark [i]) {
Prime [nPrime ++] = i;

si (i <= límite) {
para (j = i * i; j <= n; j + = i * 2) {
marca [j] = 1;
}
}
}
}
cout << "No. de Primes:" << nPrime << endl;
para (i = 0; i cout << Prime [i] << "";
}
cout << endl;
}

int main () {
tamiz (100);

devuelve 0;
}

Ahora se supone que la pregunta encuentra números primos de 1 a cierto número, digamos n. Las propiedades de primo dicen que es divisible por sí mismo y por 1. También hay una conjetura sobre el número primo que dice que cualquier número que no tenga un factor menor que la raíz cuadrada del número también es primo.

Entonces, por definición, un número primo no puede ser un número par, por lo que podemos omitir la verificación de factorización para todos los números pares mientras iteramos a través de todos los números hasta la raíz cuadrada del número dado. Cumpliendo con la regla anterior, un código simple para encontrar todos los números primos de 1 a n sería el siguiente

int main () {
int número = 137;
para (int j = 0; j <= número; j ++) {
if (número% 2 == 0) cout << "Sin primo";
para (int i = 3; i if (número% i == 0) {
cout << "No primer divisible por" << i;
rotura;
}
if (i == sqrt (número))
cout << "Número primo" << i;
}
devuelve 0;
}

Este no es el mejor algoritmo en complejidad de tiempo, pero definitivamente reduce la comparación a la mitad.

Tamiz de Eratóstenes – Wikipedia

es muy fácil.

aquí lista de primos no <100

#include
usando el espacio de nombres estándar;
int main ()
{
vector v;
para (auto i = 2; i <= 100; i ++) v.push_back (i);
para (auto i = 0; v [i] * v [i] <= 100; i ++)
{
auto c = v [i];
v.erase (remove_if (v.begin () + i + 1, v.end (), [c] (int i) {return i% c == 0;}), v.end ());
}
para (auto x: v) cout << x << endl;
}

Hola … hice un buscador de números primos muy simple … cuenta los números primos … cuando lo ejecutas, muestra el primer número primo, luego el segundo y así sucesivamente … así

1 es primo

2 es primo

3 es primo

5 es primo, etc.

Aquí está el código … es simple. pero poco complicado es matemática

#include
usando el espacio de nombres estándar;
int FindPrime (int num) {
si (num <2) {
devuelve 0;
}más{
para (int i = (num-1); i> 1; i -) {
if ((num% i) == 0) {
retorno 1;
rotura;
}
}
}
}
int main () {
for (int a = 1; a <= 100; a ++) {// 100 es cuántos resultados mostrar
if (FindPrime (a) == 0) {
cout << a << "es primo \ n";
}
}
// para pausar la pantalla
int hj;
cin >> hj;
}

Un número primo es un número natural mayor que 1 que no tiene divisores positivos distintos de 1 y en sí mismo. Por ejemplo, 11 es un número primo porque solo tiene dos divisores que son 1 y 11 (en sí). A continuación se da un programa para encontrar el número primo. Puede leer el tutorial completo junto con la lógica del programa y la explicación del código en

Programa C ++ para verificar si un número es primo o no

#include
usando el espacio de nombres estándar;
int main () {
int num, cuenta = 0;
cout << "INTRODUCIR NÚMERO:";
cin >> num;
para (int i = 1; i <= num; i ++)
{
si (num% i == 0)
{cuenta ++;
}
}
si (cuenta == 2)
{
cout << num << "ES UN PRIMER NÚMERO";
}
más
{
cout << num << "NO ES UN PRIMER NÚMERO";
}
devuelve 0;
}