C和指针之用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数
来源:互联网 发布:购物群软件 编辑:程序博客网 时间:2024/05/29 16:59
1、问题
用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数
2、代码实现
#include <stdio.h>#define LEN 10000/** *Eratosthenes-埃拉托斯特尼筛方法找质数,给出要筛数值的范围n,先用2去筛,2的倍数不是质数, * 再用下一个素数,也就是3筛,把3留下,把3的倍数不是质数,接下去用下一个素数5筛,把5留下,把5的倍数不是质数, *c不断重下去...... * 求区间质素个数 */int get_all(char *a, int start, int end){ if (end > LEN) return 0; int count = 0; //初始化,把每个元素设置'1' for (int i = start; i < end; i++) *(a + i) = '1'; //把下标不是质素的数组元素设置为‘0’ for (int i = 2; i * i <= end; ++i) if (*(a + i) == '1') for (int j = 2; j * i < end; ++j) *(a + i * j) = '0'; //打印质数 for (int i = start; i < end; ++i) if (*(a + i) == '1') count++; return count;}int main(){ char a[LEN]; int result = get_all(a, 2, 50); printf("result is %d\n", result); int result1 = get_all(a, 10, 30); printf("result1 is %d\n", result1); int result3 = get_all(a, 10, 50); printf("result3 is %d\n", result3); return 0;}
3、运行结果
1111deMacBook-Pro:Music a1111$ gcc -g z2.c -o z21111deMacBook-Pro:Music a1111$ ./z2result is 15result1 is 6result3 is 11
阅读全文
0 0
- C和指针之用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数
- C和指针之Eratosthenes-埃拉托斯特尼筛方法找质数
- 区间[A,B]与N互素的元素个数 [容斥][Eratosthenes筛法]
- 使用c语言指针和递归方法实现二分查找
- Eratosthenes 筛选法 c语言 数组+指针实现
- C和指针之字符串编程练习11(统计一串字符包含the的个数)
- 二分查找 数组和指针方法
- 《c和指针》笔记-简洁的二叉查找树删除node方法
- hdu5288 区间求个数和
- 读书笔记之《C和指针》
- C语言基础编程之指针实现字符位置查找
- C语言二分查找法(指针和数组实现)
- hdu4391(线段树查找区间内出现的个数)
- 划分树---hdu4417---区间查找(不)大于h的个数
- ZOJ 3911 线段树 区间更新查找,求素数个数
- C和指针之字符串编程练习9(在参数1中查找匹配参数2额任意字符)
- Eratosthenes
- Eratosthenes
- 上传下载
- while,do while,for循环总结
- CSS盒子模型
- angular1项目中bower的使用
- 2017/10/29学习心得
- C和指针之用拉托斯特尼筛方法(Eratosthenes)查找区间质素个数
- debian安装 MariaDB,没有提示输入 root 的密码?
- 为何spring cloud 应该使用 Euraka server 而不是 Zookeeper
- spring和mybatis整合框架
- Macbook svn安装与使用
- Beginning Visual Studio for Mac.pdf英文原版 免费下载
- 多个版本的 Python 在使用中的灵活切换
- CXF服务端The prefix "jaxws" for element "jaxws:endpoint" is not bound.
- http与https的区别