/*用筛选法求给出范围之内的素数。*/

#include

#include

int isPrime(int n){//判断素数

for(int i = 2; i < n; i ++){

if(n % i == 0)

return 0;

}

return 1;

}

int* allPrime(int scale){//这个函数要存储下来给定范围内的所有素数

/*而因为这个存储函数不在main函数内,如果用数组存储仅仅是局部变量,

无法实现跨函数输出,因此想到用指针代替,int* 代表输出结果是个指针*/

int cnt = 0;//记录有多少个素数,便于之后分配指针内存

for(int i = 2; i <= scale; i ++){//有cnt个素数

if(isPrime(i))

cnt ++;

}

int* store = malloc(sizeof(int) * cnt);//分配cnt个大小的内存空间

int serial = 0;//将各个素数按顺序存进指针中,serial代表元素

for(int i = 2; i <= scale; i ++){//再次走遍范围内所有数

if(isPrime(i)){//判断是否为素数

* (store + serial) = i;//存进指针

serial ++;

}

}

*(store + cnt) = 0;//最后一个元素的下一位设零

return store;//返回指针

free(store);//释放空间

}

int main(){

int scale;//输入范围

scanf("%d", &scale);

for(int i = 0; * (allPrime(scale) + i) != 0; i ++){//i代表元素

/*判断条件就是当前指针元素是否非零,非零就输出来,为零,说明结束*/

printf("%d ", * (allPrime(scale) + i));//取出指针中的值

}

printf("\n");

}

发表于 2019-12-24 12:22:03

回复(1)

c语言筛选法求100之内素数,用筛选法求100之内的素数。相关推荐

  1. C语言 古代经典算术题:百钱百鸡。用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法。

    C语言 古代经典算术题:百钱百鸡.用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法. 代码: #include <stdio.h> void main ...

  2. Algorithm:C++语言实现之求最大连续子数组(暴力法、分治法、分析法、动态规划法)

    Algorithm:C++语言实现之求最大连续子数组(暴力法.分治法.分析法.动态规划法) 目录 求最大连续子数组 T1.code暴力法  O(n3) T2.分治法   O( n*log(n) ) T ...

  3. C语言学习之求1-1/2+1/3-1/4+···+1/99-1/100

    C语言学习之求1-1/2+1/3-1/4+···+1/99-1/100 #include <stdio.h> int main(){int a=1;//定义+,-的变量double x,y ...

  4. C语言求矩阵的逆(高斯法)

    初等变换法是常用的矩阵求逆方法之一 相对于伴随法,初等行变换法有着较低的时间复杂度,可以进行相对高维的矩阵运算,但同时也会损失一点点精度. 伴随法可参考之前的博客:C语言求矩阵的逆(伴随法) 目录 数 ...

  5. 用C语言用指针怎么算通用定积分,C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数,...

    问题描述: C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数, //我运行的结果和答案对不上,请帮我看看程序对吗? //实现积分 #include #include i ...

  6. 编写指数函数 c语言,C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数,...

    问题描述: C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数, //我运行的结果和答案对不上,请帮我看看程序对吗? //实现积分 #include #include i ...

  7. python穷举法求素数_使用Python求指数为20以内的所有梅森素数

    这篇文章将要介绍梅森素数的定义以及在Python中实现的方法. 一.梅森素数 梅森数(Mn)指的是形如2n - 1的正整数,其中指数 n 是素数. 如果一个梅森数是素数,则称其为梅森素数.例如22-1 ...

  8. C语言实现辗转相除法和更相减损法求两数最大公约数,及求最小公倍数的方法

    在学习从C语言过程中,我们会遇到一个题目,求两个整数的最大公约数,那么接下来分别介绍两种方法求最大公约数 1,辗转相除法 辗转相除法, 又名欧几里德算法(Euclidean Algorithm),是求 ...

  9. (11/∞)每日一练{1.将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求每一种小钞都要有,编程求出所有可能的换法总数输出并输出各换法的组合。}

    /*------------------------------------------------------- 将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求 ...

  10. C语言求矩阵的逆(伴随法)

    之前介绍了C语言用代数余子式求行列式 本次开始介绍如何用公式法对矩阵求逆,并用C语言将其实现. 之前程序有点小bug,已于2022年11月29日修改. 目录 数学原理 矩阵求逆的公式 数乘矩阵 程序设 ...

最新文章

  1. C++基础知识之vector
  2. 红黑树的红黑标志有什么用
  3. Python爬虫四(正则表达式)
  4. pyhton学习,day1作业,用户名密码登录模块
  5. 思路不清晰还想月薪过万?学会这4招,升职加薪有望
  6. 利用高斯金字塔制作图像显著图
  7. python list倒序_python数据分析(1):内建序列函数
  8. 智慧交通前瞻:如何解决城市发展“心病”?
  9. Cocos2d-X开发中国象棋《八》走棋
  10. 红旗Linux9不让登录wechat,关于网页版微信无法登陆以及wechat全平台使用的问题
  11. ios Reading from private effective user settings
  12. 友善串口工具接收数据随机换行_mfc串口收发数据。编辑框希望每接收一次就换行。怎么实现。我的换行结果不对...
  13. 关于Windows-Linux双系统的启动引导
  14. BZOJ2716天使玩偶
  15. 创建线程以及怎样创建有返回值的线程
  16. obs多推流地址_OBS如何进行多路推流
  17. 大数据学习的有哪些相关书籍
  18. 从业两年时间,我被一个女前端鄙视了!
  19. SPM——Spatial Pyramid Matching
  20. 年薪50万以上的人,一般都是什么学历?怎么才能做到年薪50W?

热门文章

  1. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
  2. Centos R安装
  3. 第四次作业——测试作业
  4. linux命令-tar命令
  5. android 关于listview scrollview 底部 控件无法显示的两个解决方案
  6. Tengine(Nginx)动静分离简要配置
  7. apache部署多个项目
  8. 一篇文章带你弄懂大数据!
  9. python学习10
  10. android.net.wifi的简单使用方法