c语言:找出N以内的所有素数
来源:互联网 发布:云计算安全事件 编辑:程序博客网 时间:2024/05/17 02:56
方法一:
方法思想概论:
我们已知2是最小素数,于是从2开始筛选(定义筛选的基数为n,此时n = 2)。那么所有的2的倍数都不是素数,
因为至少可以被2整除。之后对3、4、5、6.....进行筛选(此时n = 3、4、5、6、7.....)。
方法二:
方法思想概论:
方法思想概论:
我们已知2是最小素数,于是从2开始筛选(定义筛选的基数为n,此时n = 2)。那么所有的2的倍数都不是素数,
因为至少可以被2整除。之后对3、4、5、6.....进行筛选(此时n = 3、4、5、6、7.....)。
#include <stdio.h>#include <stdio.h>#define N 10000 //这个可以随意定义,只要不溢出int main(){int prime[N] = { 0 }, //存储素数,并初始化为0flag[N] = { 0 }, //数字对应的素数标志。0 --素数 1 -- 非素数i, j, count;for (i = 2, count = 0; i < N; i++){if (!flag[i]) //刚进入i对应的循环时,如果素数标志为0,那代表i不能被所有比i小的正整数整除,所以是素数。prime[count++] = i;for (j = 2 * i; j<N; j += i){ //筛掉所有能被i整除的数。flag[j] = 1;}}for (i = 0; i<count; i++)printf("%d ", prime[i]);return 0;}
方法二:
方法思想概论:
一轮循环判断从2到N之间的所有数字,判断每个数字是不是都只能被1和自身整除。
#include <stdio.h> #include <stdio.h> #define N 10000 //这个可以随意定义,只要不溢出 int main(){ int sushu[N],i,j,count = 0,flag; for (i = 2; i < N;i++){ flag = 0; //每轮循环要记得归位。 for (j = 2; j * j <= i;j++){ if (i % j == 0){ flag = 1; } } if (flag == 0) sushu[count++] = i; } return 0;}
阅读全文
1 0
- c语言:找出N以内的所有素数
- 快速找出N以内的素数
- 使用Eratosthenes筛找出小于等于n的所有素数的C语言实现
- 【C语言助教】1000以内的所有素数
- [C]找出100以内的素数
- 求正整数n以内的所有素数
- OJ输出n以内的所有素数
- 计算n以内的所有素数
- 求N以内的所有素数
- C语言小程序:找出100以内素数
- 利用素数表快速寻找 n 以内的所有素数
- 利用素数表快速寻找 n 以内的所有素数
- 素数标记法求n以内所有的素数
- 找出1~n之间的所有素数
- 判断n以内所有素数
- 【C语言】输入一个整数N,求N以内的素数之和
- 作业.找出100以内所有素数
- 求N以内的所有素数的个数
- 详解Android动画之Frame Animation(转载自 liuhe688 博客)
- NIO的介绍及使用(总结)
- 用matlab解欧拉计划题目
- [图像]摄像机标定(1) 标定中的四个坐标系
- iOS保存联系人到系统通讯录
- c语言:找出N以内的所有素数
- NYOJ D : riba的名字
- UVA
- Python学习_我该怎样访问列表中的元素
- POJ1273 Drainage Ditches【dinic算法】
- jenkins部署到tomcat服务器上
- ctf学习笔记
- java语言
- Win7系统Visual Studio下的openCV环境配置