素数筛选模板

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#define Max 100

int prime[Max+5];

void fun(  )

{

     memset( prime,0,sizeof( prime ) );//假设MAX内所有数都是素数并赋值为0 

     for( int i = 2; i <= Max / 2; ++i )//分别找出所有2--MAX/2内的所有数的倍数并赋值为1,标记为非素数 

          for( int j = i + i; j <= Max; j += i )

               prime[j] = 1;

 }

int main(  )

{

    fun(  );

    for( int i = 1; i <= Max; ++i )//输出1--MAX内的所有素数 

         if( !prime[i] )

             printf( "%d  ",i );

    system( "pause" );

    return 0;

}

你可能感兴趣的:(模板)