题解 | #筛选法求素数#

筛选法求素数

http://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a

用了c和python各写了一版,因为对python还是小白阶段,所以中间改了很久才出来 c:

#include<stdio.h>
int issushu(int n){
    int i;
    for(i=2;i<n;i++){
        if(n%i==0){
            return -1;
        }
    }
    return 1;
}
int main(){
    int n,k,count=0;
    while(scanf("%d",&n)!=EOF){
        for(k=2;k<=n;k++){
            if(issushu(k)==1){
                printf("%d ",k);
                count++;
            }
        }
        printf("\n");
        printf("%d",n-count-1);
    }
    return 0;
}

python:

import math
def sushu(k):
    for i in range(2,k):
        if k%i==0:
             return False
    return True
while True:
    try:
        count=0
        n=int(input())
        for k in range(2,n+1):
            if sushu(k):
                print(k,end='')
                print(' ',end='')
                count+=1
        print()
        print(n-count-1)
    except:
        break
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务