寻找距离某数最近的素数(C语言)
来源:互联网 发布:matlab从txt读取数据 编辑:程序博客网 时间:2024/05/19 16:50
昨天一初学C语言的同学在做练习题的时候遇到了如题所示的题目,她从3开始求出了一定范围内所有素数存到数组中,再从数组中检索距离某数最近的数。当时我便告诉她说,这种方法的代价太大,并且只能在一定范围中进行工作。然后给她敲了一个从目标数开始双向寻找的程序,如下。
#include<stdio.h>#include<math.h>#include<stdlib.h>int main(void){ int aim; int logo1=0,logo2=0; int i,j; scanf("%d",&aim); if(aim<=2) { printf("3"); return 0; } if(aim==3) { printf("5"); return 0; } for(i=1;i<aim-2;i++) { for(j=2;j<=sqrt(aim+i);j++) if((aim+i)%j==0) break; if(j>sqrt(aim+i)) logo1=1; for(j=2;j<=sqrt(aim-i);j++) if((aim-i)%j==0) break; if(j>sqrt(aim-i)) logo2=1; if(logo1==1||logo2==1) break; } if(logo1==1) printf("%10d",aim+i); if(logo2==1) printf("%10d",aim-i); return 0;}
也就是双向寻找,当遇到素数时做标记并跳出循环输出。(大神勿喷= =、)
今天打开电脑又想到同学的那个程序,仔细想想,其实他的那种方法还是有可圈可点的地方的。比如说2014年深圳杯数学建模竞赛的B题(一道有关生物基因工程的题,有兴趣的可以去看看) 就是这样。它需要先将所有DNA序列测出存储,然后在实际研究过程中进行索引。这两者之间有些类似。但是这种方法还要结合后台数据库去实现,毕竟单纯C语言是不能进行长期存储的,它需要每次使用前都进行存储,这样就会浪费很多时间。
0 0
- 寻找距离某数最近的素数(C语言)
- ACM 169 素数 (找出距离某数最近的素数)
- C语言(1)素数距离问题
- ACM 24 素数距离问题(记录距离最近的素数)
- C#寻找素数的算法
- C#寻找素数的算法
- C#寻找素数的算法
- c语言之素数距离问题
- 【C语言】水仙花数,素数
- NYOJ 素数 最近距离问题
- 水仙花数&素数&质因数分解的C语言实现
- 【c语言】查找某个数后的n个素数
- 【c语言】判断某个区间所有的数谁是素数
- PAT Basic 1013. 数素数 (20)(C语言实现)
- 快速求素数 C语言(从2开始的连续数)
- 2.11寻找最近的点对 (给定一系列的点,求出距离最短的点对)
- C语言如何判断一个数是素数,输出100-200之间的全部素数。
- c语言练习 7-3. 数素数
- 如何给apk文件签名(一)
- mysql命令行常用命令
- 自定義佈局顯示dialog
- hdu 1272 小希的迷宫(并查集)
- 解决ECSHOP中transport.js和jquery的冲突问题
- 寻找距离某数最近的素数(C语言)
- cocos2dx 设置资源寻找路径
- JNI学习方法
- const 指针与指向const的指针
- 正则表达式
- JS判断移动设备函数(几乎涵盖所有的移动终端)
- 图书管理项目 第一天 user用户模块
- ios UITableView中Cell的重用机制
- 局域网其他电脑如何访问(ping通)虚拟机