#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