该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

int* pt = NULL; // primes_table

int pt_size = 0; // primes_table 数量大小

int init_primes_table(void)

{

FILE* pFile;

pFile = fopen("primes_table.bin", "rb");

if (pFile == NULL) {

fputs("primes_table.bin error", stderr); // 如果文件错误,退出1

exit(1);

}

// obtain file size: 获得文件大小

fseek(pFile, 0, SEEK_END); // 指针移到文件末位

int file_size = ftell(pFile); // 获得文件长度

rewind(pFile); // 函数rewind()把文件指针移到由stream(流)指定的开始处, 同时清除和流相关的错误和EOF标记

int pt_size = file_size / sizeof(int); // 质数个数

pt = new int[pt_size]; // 分配 质数表内存

// copy the file into the buffer: 该文件复制到缓冲区

int result = fread(pt, sizeof(int), pt_size, pFile); // 返回值是读取的内容数量

if (result != pt_size) {

fputs("Reading error", stderr); // 返回值如果不和文件大小,读错误

exit(3);

}

fclose(pFile);

return pt_size;

}

/* 非递归算法 二分法查找

* 算法:当数据量很大适宜采用该方法。

* 采用二分法查找时,数据需是排好序的。

* 主要思想是:(设查找的数组区间为array[low, high])

*/

int binary(int* a, int key, int n)

{

int left = 0, right = n - 1, mid = 0;

mid = (left + right) / 2;

while (left < right && a[mid] != key) {

if (a[mid] < key) {

left = mid + 1;

} else if (a[mid] > key) {

right = mid;

}

mid = (left + right) / 2;

}

if (a[mid] == key)

return mid;

return -1;

}

// 判断是否质数 9999991 以内

bool isprimes(int x)

{

int flag = binary(pt, x, pt_size);

if (flag == -1)

return false;

return true;

}

int main(int argc, char* argv[])

{

pt_size = init_primes_table();

int end = 10000;

while (!isprimes(end--)) {

}

printf("%d 是 素数\n", ++end);

return 0;

}

使用while 感觉简单点

输出一万以内最大的素数c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...相关推荐

  1. 最大素数c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

  2. 求最大素数的c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

  3. 最大素数的c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

  4. 信息学奥赛一本通 1172:求10000以内n的阶乘 | OpenJudge NOI 1.6 14:求10000以内n的阶乘

    [题目链接] ybt 1172:求10000以内n的阶乘 OpenJudge NOI 1.6 14:求10000以内n的阶乘 [题目考点] 1. 高精度 考察:高精乘低精 高精度计算讲解 [解题思路] ...

  5. 编写一个函数判断一个整数是不是素数c语言,编写函数判断一个整数是否为素数...

    题目内容: 编写函数int isprime(int a);用来判断整数a是否为素数,若是素数,函数返回1,否则返回0.调用该函数找出任意给定的n个整数中的素数. 注意,1不是素数. 输入格式: 一系列 ...

  6. c语言10000以内的质数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

  7. C语言输出素数简单,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

  8. c语言输出最大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

  9. c语言生成一个大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int* pt = NULL; // primes_table int pt_size = 0; // primes_ ...

最新文章

  1. android pop3与imap方式接收邮件(javamail)
  2. Sqlite表的结构修改
  3. [原创]基于Extjs的开源控件库 - http://extaspnet.codeplex.com/
  4. LDA主题模型——gensim实战
  5. 技术宝典 | ToB 业务场景下自动化测试的实践及探索
  6. python编写ftp客户端_用Python写FTP客户端程序
  7. 报名 | CCKS 2021评测任务:生活服务领域知识图谱问答
  8. python mutilprocessing多进程编程
  9. Java类加载的那些事
  10. Java 装箱和拆箱
  11. 金山云服务器内网带宽,性能提升40%!第三代金山云服务器全面覆盖不同企业计算力需求...
  12. 解决性能问题中SQL Server警报:SQL Server警报基础
  13. Machine Learning - X. Advice for Applying Machine Learning机器学习算法的诊断和改进 (Week 6)
  14. 小程序 ---- (引入iconfont,自定义组件内不显示iconfont)
  15. mysql常见笔试_mysql常见笔试题
  16. 2020定额水平测算——“15定额工程”一键转换“20定额工程”
  17. 惠普电脑按F12锁屏如何解?
  18. [MSSQL]【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
  19. java刮刮乐,20行JS代码实现网页刮刮乐效果
  20. 微信小程序:简单舒服新UI装逼制作神器

热门文章

  1. 美国根服务器在哪个位置,什么是根服务器?物联网母根服务器在哪里?
  2. QT设置应用程序的图标
  3. Tableau 空难统计分析(二)飞行阶段事故数
  4. 清退35岁以上基层员工,早已是公开秘密
  5. python编写会计凭证金蝶_金蝶采购发票如何生成凭证
  6. 课堂案例之用CSS画红绿红三个盒子
  7. 将VirtualBox虚拟机电脑屏幕填满全屏的方法
  8. Linux配置jdk1.8环境变量
  9. 猎豹移动5700万美元收购News Republic
  10. Vue3-Vite-TS-AntD项目搭建