`
Simone_chou
  • 浏览: 192689 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

快速查找素数(素数表)

    博客分类:
  • NYOJ
 
阅读更多

快速查找素数

时间限制: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(1到2000000),直到0结束。输出2到N范围内的所有素数。

 

     思路:

     用常规方法一定会TLE的,所以应该建素数表,把2到N是素数的全部标记出来。

 

     AC:

#include<stdio.h>
#include<string.h>
#define MAX 2000000
int num[MAX];

void makeprime()
{
	memset(num,0,sizeof(num));
	for(int i=2;i<=1000000;i++) //一半就够了
		{
			if(!num[i])
			{
				for(int j=i+i;j<=MAX;j+=i)  //必须从i+i开始
					 num[j]=1;
			}
		}
	return;
}
//1代表不是素数,0代表是素数
int main()
{
	int n;
	makeprime();
	while(scanf("%d",&n)!=EOF&&n)
	{
		printf("%d",2);
		for(int i=3;i<=n;i++)
			 if(!num[i]) printf(" %d",i);
		printf("\n");
	}
	return 0;
}

 

    总结:

    1.用long long会超时,用int就足够了;

    2.属于吃饱撑着的题……

 

 

分享到:
评论

相关推荐

    快速查找素数

    该代码可以用于快速查找素数,比以往的速速快N多倍。

    Matlab快速查找素数0-50

    通过运行`Matlab快速查找素数0-50.txt`中的代码,你可以得到0到50之间所有素数的列表。这个文件可能包含了上述MATLAB代码的文本形式,便于理解和学习。理解并实践这种编程技巧,不仅有助于提升MATLAB编程能力,还能...

    从1到10000000的质数表.txt

    - **工程实践**:在实际项目中快速查找特定范围内的质数,避免重复计算。 综上所述,从1到10000000的质数表不仅包含了丰富的数学知识,还具有重要的应用价值,在多个领域都有着不可替代的作用。通过对质数的理解和...

    1亿以内的素数表.rar

    4. **教育工具**:教师和学生在教学和学习过程中,可以利用这个表进行实践操作,例如查找特定范围内的素数,或者进行素数相关的编程练习。 5. **数据挖掘**:对于大数据分析和挖掘,了解一定范围内的素数分布可以...

    CPP.rar_cpp 判断质数_素数cpp

    - **基本思想**:预先计算并存储一定范围内的所有质数,形成一个质数表。之后需要判断某个数是否为质数时,直接查找表即可。 - **实现步骤**: 1. 初始化一个布尔数组,大小为n+1,所有元素设为true。0和1设为...

    质数表完整版.docx

    这个质数表可以作为基础教育资源,帮助学生理解质数的概念,或者供研究人员快速查找特定范围内的质数。同时,对于编程挑战和算法练习,这个列表也是很好的参考。 总结一下,这个文档提供了1000以内的168个质数和...

    如何快速检查素数

    ### 如何快速检查素数 在数学与计算机科学领域中,素数检测是十分重要的一个环节,尤其是在加密、密码学以及高性能计算等领域有着广泛的应用。本文将基于给定的文件内容,详细介绍一种高效的32位整数素性检测算法,...

    5万内质数表

    - **编程**:在编程中,质数表可以用来实现高效的算法,比如快速检查一个数是否为质数。 #### 三、质数表生成方法 - **Sieve of Eratosthenes**(埃拉托斯特尼筛法):这是一种非常古老的用于生成质数表的方法。...

    快速素数筛法

    快速素数筛法是一种在计算机科学中用于查找所有小于给定数的素数的高效算法。这种方法基于数论原理,尤其是筛法的概念,其目的是在有限的计算时间内找到大量素数。快速素数筛法相比于早期的埃拉托斯特尼筛法等方法,...

    十亿以内回文素数查找

    在进行十亿以内的回文素数查找时,我们面临的主要挑战是如何高效地判断一个大整数是否为素数,以及如何快速检测其是否为回文。以下是两种关键算法的介绍: 1. **埃拉托斯特尼筛法(Sieve of Eratosthenes)**:这是...

    素数查找器

    在C#编程中,设计一个素数查找器可以帮助我们快速地在指定范围内找到所有的素数。下面我们将详细探讨这个素数查找器的工作原理、C#代码实现以及相关的算法优化。 【描述】中的知识点: 1. **素数定义**:素数是...

    素数计算器 作者 SaneBow

    综合以上信息,我们可以推测SaneBow的“素数计算器2.0”是一个基于VBS开发的、高效计算素数的工具,它具有快速计算和结果导出功能,适用于需要批量查找素数的场景。由于它是可执行文件,因此用户使用起来非常便捷,...

    原创的素数的求法 希望对您有用

    【原创的素数求法——除余法】 在信息技术领域,素数(质数)扮演着重要的角色,尤其是在密码学中。求素数的方法有很多,其中一...这个方法在实际编程中,尤其是需要快速查找或生成素数的情况下,具有较高的实用价值。

    算法-素数方阵(信息学奥赛一本通-T1446).rar

    例如,使用缓存技术存储已经计算过的素数,或者使用数据结构(如二分查找、平衡搜索树等)来快速定位和访问素数。 6. **扩展问题**:除了基本的素数方阵,还可以延伸到更复杂的变种,如素数螺旋、素数格子等,这些...

    递增三元组和100002素数_递增三元组和100002素数问题_

    此外,对于100002这个特定的素数,我们可以预计算小于100002的所有素数,这样在检查元素和时可以直接查找,而不必每次都进行素数判断。 总之,这是一个结合了数学和算法的编程问题,涉及到素数检测、数组处理和双...

    ConsoleApplication1_质数数目计算_

    虽然筛法在计算质数数量方面非常有效,但请注意,它并不适合查找单个大质数或在非常大的数域内查找质数。对于非常大的数,更高级的算法如Miller-Rabin素数测试或者AKS素数判定可能会更加适用。 在"Console...

    易语言源码易语言取大素数源码.rar

    下面我们将深入探讨易语言以及如何使用易语言来查找大素数。 首先,易语言的核心理念是“易学、易用、易开发”。它的语法直观,类似汉语句子结构,如“打开文件”、“关闭窗口”等,对于初学者来说十分友好。易语言...

    质数和合数.doc

    此外,还会进行游戏活动,通过“你说我判断”的方式,训练学生对质数和合数概念的运用,同时制作100以内的质数表,这个过程中可以采用排除法,剔除2、3、5、7的倍数来简化查找过程。 接着,通过阅读材料进一步拓展...

    质数和合数完整教案.doc

    5. **质数表的制作**:在100以内的数中找出所有的质数,可以采用逐个检查或筛选法。筛选法,如埃拉托斯特尼筛法,是一种有效的找出所有小于给定数的质数的方法,通过去除每个质数的倍数来逐步筛选。 6. **数的奇偶...

    求素数_求素数_

    标签"求素数"进一步强调了主题的焦点,即素数的计算和查找。 在压缩包的文件名称列表中,我们有: 1. "1000内素数运算程序思路及流程" - 这可能是一个文档,详细介绍了如何设计和实现一个程序来解决这个问题,包括...

Global site tag (gtag.js) - Google Analytics