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

#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语言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语言求10000以内的质数,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. [教程]JS从糊涂到明白:一步一步编写计算器3 – 功能扩展
  2. spring mvc 接收页面表单List
  3. .f90文件批量转为dll文件_办公必备神器DropIt V8.5.1Portable文件整理分类工具
  4. 【JUC并发编程04】线程间定制化通信(单标志法存在的问题)
  5. linux5.4无法远程,利用Xmanager_在RedHat5.4下实现Linux远程桌面
  6. React开发(166):ant design form 设置值
  7. LeetCode 526. 优美的排列(回溯)
  8. jeecg 如何重新加载当前渲染tab页面
  9. 逆天通用水印扩展篇~新增剪贴板系列的功能和手动配置,卸除原基础不常用的功能...
  10. Adobe Originals的可变字体
  11. 【Java线程池实现原理及其在美团业务中的实践】
  12. 【数字孪生】UE4虚幻引擎与前端Web页面的结合
  13. 下载jupyterlab中的文件夹
  14. 转Genymetion
  15. 用python 打印等腰三角形
  16. cfg格式文件在服务器哪里,cfg文件,小编教你怎么打开cfg文件
  17. 合肥工业大学计算机与信息学院学生会宗旨,合肥工业大学宣城校区第一届学生会成立大会召开...
  18. STM32C8T6的FreeRTOS移植
  19. 用逗号分割并在Python中去除空格
  20. 《大话西游》你真的看懂了吗,kotlin命令行编译

热门文章

  1. strings.SplitN()
  2. nacos的配置中心
  3. Redis命令之散列
  4. Ae效果控件快速参考:透视
  5. Java冷知识(三)编译器的花招之synthetic修饰符
  6. android资源加载流程6,FrameWork源码解析(6)-AssetManager加载资源过程
  7. Web APIs(七)
  8. 二、【数据结构】列表(list)的实现
  9. “你家娃为什么这么爱看书?”只用3招,孩子秒变小书迷
  10. mysql 钩子函数_Vue入门基础(生命周期钩子函数)