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

#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语言10000以内最大的质数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...相关推荐

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

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

  2. c语言求10000以内的质数,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. C语言输出素数简单,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...

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

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

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

  6. c语言输出最大素数,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. 搭建H1ve-ctfd以及如何部署题目
  2. [C#]利用键代码自动转换生成字母键或其它键信息
  3. 怎么查看父子级目录linux,如何查找linux中特定父目录的所有文件?
  4. matlab中的uint8函数,未定义与 'uint8' 类型的输入参数相对应的函数 'fitnessty'
  5. linux mkdir 参数,Linux基础命令之 mkdir
  6. Struts2中Action接收参数的方法
  7. 【HDU_P3530】Subsequence
  8. MyX5TbsDemo【体验腾讯浏览服务Android SDK (完整版)】
  9. PDF文件如何旋转后保存
  10. Android分步注册,Activity由B返回A修改再前往B,B中已填项不变
  11. 户外LED透明屏与室内透明屏区别,选型号建议
  12. 什么是make/Makefile?
  13. vue中播放flv流视频
  14. 计算机的存储单位B KB MB GB TB···
  15. 23.MongoDB地理位置检索
  16. 服务器换主板不换系统教程,主板要换,系统不变
  17. 零代码平台基于模型驱动开发流程和概念
  18. shell脚本——sed编辑器
  19. 有趣的图(四)(58)
  20. 2021年机修钳工(高级)考试题库及机修钳工(高级)考试试卷

热门文章

  1. sql domain credentail
  2. 【Python】排序函数 sort、sorted 对复杂列表排序
  3. Windows下 Anaconda + VScode Python 环境搭建 多图 非常详细
  4. python随机读取字符_Python random模块(获取随机数)常用方法和使用例子
  5. Git(11)-- Git 别名(alias)
  6. Gstreamer之QT程序无法找到Gstreamer1.0 pulseaudio插件(二十八)
  7. Mac目录映射到docker容器ubuntu目录
  8. android5.1蓝牙反向控制(Avrcp协议)流程
  9. Android源码中常用的系统广播
  10. NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序