用户输入一个整数,然后显示所有小于或等于该数的素数!

博客探讨了一道编程题目,即如何找出小于或等于用户输入整数的所有素数。作者指出,自己最初实现的算法效率较低,当输入数值较大时(如1000万)无法快速得出结果。为解决这个问题,作者提到了埃拉托色尼筛法,一种更高效的素数筛选方法,并承诺后续尝试应用此算法来提高效率。博客附有输入100万时的运行截图,并详细介绍了算法过程。
摘要由CSDN通过智能技术生成

用户输入一个整数,然后显示所有小于或等于该数的素数!在做课后习题是碰见这个题目,自己写的是一下这样的。但总觉得有点慢。我输入了1000W,等了好久,还不出结果。后来查了下,还有个叫 埃拉托色尼筛法,这个貌似效率要高很多,回头再来试试。

下图是我输入了100W的截图:



下面是详细的算法:


#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)

int main(void)
{
	int num , n;
	unsigned long div;
	bool isPrime;  // 素数标志位
	int ct ; //计数器
	ct =0 ;

	printf("Please enter an integer for analysis:");
	printf("Enter q to quit. \n");
	while (scanf("%d", &num)==1)
	{
		if(num>0)
		{
		for(n=2 ; n <= num ; n++) //外循环2-输入数
		{
			for (div = 2, isPrime = true; (div*div)<=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值