给你一个正整数N(N<=1000),希望你求出1~N内的所有素数,包括N
(不超时!!!)
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int a[1008];
- int main()
- {
- int n,i,j;
- int sum;
- scanf("%d",&n);
- sum=0;
- memset(a,1,sizeof(a));
- for(i=2; i<=n; i++)
- {
- if(a[i])
- {
- sum++;
- for(j=i; j<=n; j=j+i)
- {
- a[j]=0;//素数的倍数不是素数
- }
- }
- }
- printf("%d\n",sum);
- return 0;
- }
本文介绍了一个高效的算法用于查找给定范围内(不超过1000)的所有素数,并通过C语言实现。算法利用了筛法原理,通过标记非素数的倍数来过滤掉合数,最终输出所有素数的总数。
9383

被折叠的 条评论
为什么被折叠?



