Use el método de selección para encontrar números primos dentro de 100 (método de selección !!!)

#include <stdio.h> 
#include <math.h>
 int main () 
{ 
    int a [ 101 ], i, j; 

    for (i = 1 ; i <= 100 ; i ++ ) 
    { 
        a [i] = i;    // Asigna el valor inicial a la matriz 
    } 
    a [ 1 ] = 0 ; // Elimina a [1] 

    para (i = 2 ; i <sqrt ( 100 ); i ++)   // Si necesitas encontrar números primos en el rango de 1-n La tabla solo necesita dividirse por el número raíz n (tome un número entero) 
    {
         para (j = i + 1 ; j <= 100 ; j ++ )
            if (a [i]! = 0 && a [j]! = 0 )
                 if (a [j]% a [i] == 0 ) 
                { 
                    a [j] = 0 ; 
                } 

    } 

    printf ( " \ n " );
    int n; 

    para (i = 2 , n = 0 ; i <= 100 ; i ++ ) 
    { 
        if (a [i]! = 0 ) 
        { 
            printf ( " % 5d " , a [i]); 
            n ++; 
        } 

        if (n == 10 ) 
        { 
            printf ( " \ n " ); 
            n = 0 ; // Inicializar después de una finalización 
        } 
    } 


    return  0 ; 
}

 

El llamado método de detección es el "método de tamizado de eratoseno". Se juzga un conjunto de datos si son números primos uno por uno, y si se encuentra un número no primo, se extraerá.

El algoritmo se puede expresar como;

(1) Excavar 1;

(2) Divida el siguiente número p por el siguiente número no marcado p, y extraiga múltiplos de p

(3) Verifique si p es menor que la parte entera del número raíz n, si es así, luego devuelva (2) para continuar la ejecución, de lo contrario termina

(4) El resto son números primos

 

Supongo que te gusta

Origin www.cnblogs.com/18191xq/p/12738216.html
Recomendado
Clasificación