筛选法求素数_2

#include<stdio.h>

#define MAX 700000

int prime[MAX];
int count=0;

int Check_Prime( int n ){
    int i;
    if( (n!=2 && !(n%2)) || (n!=3 && !(n%3)) || (n!=5 && !(n%5)) || (n!=7 && !(n%7)) )
        return 0;    //可以节省很多时间
    for(i=0; prime[i]*prime[i]<=n; i++)    //素数可以写成几个素因子数之和,只判断素因子即可
        if( !(n%prime[i]) )
            return 0;
    return n>1;
}

void Init_Prime(){
    int i;
    prime[count++]=2;
    for(i=3; i<5000000; i++)
        if( Check_Prime(i) )
            prime[count++] = i;
}

int main(){
    Init_Prime();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值