用户输入一个整数,然后显示所有小于或等于该数的素数!在做课后习题是碰见这个题目,自己写的是一下这样的。但总觉得有点慢。我输入了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)<=