本文主要是介绍187 快速查找素数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
快速查找素数
时间限制: 1000 ms | 内存限制: 65535 KB
难度: 3
- 描述
- 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。
- 输入
- 给出一个正整数数N(N<=2000000)
但N为0时结束程序。
测试数据不超过100组 输出 - 将2~N范围内所有的素数输出。两个数之间用空格隔开
样例输入 -
5 10 11 0
样例输出 -
2 3 5 2 3 5 7 2 3 5 7 11
- 给出一个正整数数N(N<=2000000)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;int arr[2000001];int main()
{int n,i,j;for(i=2;i<=2000000;i++) //打表,数组下标代表要判断的数,0代表是素数,1代表不是{if(arr[i]==0)for(j=i+i;j<=2000000;j+=i) //筛法判断素数arr[j]=1;}while(scanf("%d",&n) && n){printf("2");for(i=3;i<=n;i++)if(arr[i]==0)printf(" %d",i);printf("\n");}
}
这篇关于187 快速查找素数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!