华为OJ(查找组成一个偶数最接近的两个素数)
来源:互联网 发布:win7 upnp nat端口失败 编辑:程序博客网 时间:2024/05/16 05:20
首先判断n/2是否是素数,如果是,那么刚好输出;如果不是素数,i从half-1开始递减至第一个素数停止,j从half+1递增至第一个素数停止,随时判断两数是否是素数和是否为n。
开始因为格式不对,呃呃呃,谁知道是空格还是回车呢?后来因为sqrt重载的问题编译出错,使用(double或float)强制类型转换或者sqrtf可以解决,下面是通过测试的代码:
#include<iostream>using namespace std;void primepair(int);bool isprime(int);int main(){int n;cin>>n;while(n<=5||n>10000)cin>>n;primepair(n);//system("pause");return 0;}void primepair(int n){int half=n/2;int minprime=0,maxprime=0;if(isprime(half))cout<<half<<endl<<half<<endl;else{for(int i=half-1,j=half+1;i>=2&&j<n;){if(i+j<n&&isprime(i)&&isprime(j))++j;if(i+j>n&&isprime(i)&&isprime(j))--i;if(i+j==n&&isprime(i)&&isprime(j)){cout<<i<<" "<<j<<endl;break;}if(!isprime(i))--i;if(!isprime(j))++j;}}}bool isprime(int n){for(int i=2;i<=sqrtf(n);++i)if(n%i==0)return false;return true;}
0 0
- 【华为oj】查找组成一个偶数最接近的两个素数
- 华为OJ--查找组成一个偶数最接近的两个素数
- 华为oj 查找组成一个偶数最接近的两个素数
- 华为oj 查找组成一个偶数最接近的两个素数
- 【华为 OJ 】查找组成一个偶数最接近的两个素数
- 华为OJ 查找组成一个偶数最接近的两个素数
- 华为OJ:查找组成一个偶数最接近的两个素数
- 华为OJ(查找组成一个偶数最接近的两个素数)
- 【华为OJ】查找组成偶数最接近的两个素数
- 华为oj_查找组成一个偶数最接近的两个素数
- 华为OJ 查找组成一个偶数最接近的两个素数 Java实现
- 华为OJ基础篇-查找组成一个偶数最接近的两个素数
- Java算法---华为oj查找组成一个偶数最接近的两个素数
- 【华为OJ】【051-查找组成一个偶数最接近的两个素数】
- 【华为OJ】【079-查找组成一个偶数最接近的两个素数】
- 华为OJ——查找组成一个偶数最接近的两个素数
- 华为OJ 初级:查找组成一个偶数最接近的两个素数
- 华为OJ——查找组成一个偶数最接近的两个素数
- 拼写纠错 (英文)
- IOS FMDB操作SQLite3
- Eclipse导入项目被认为不是Web项目无法部署到Tomcat服务器上的最简单解决办法
- 数据结构(29)图的遍历
- 手机系统版本跳转
- 华为OJ(查找组成一个偶数最接近的两个素数)
- LeetCode-29 Divide Two Integers
- linux中用进程的PID来查找执行文件的及其路径
- 关于同一个数据库的表备份和表恢复的sql简单语句
- java 动态代理
- 74.明明的随机数
- Struts2基础---struts.xml配置
- SSH框架中 分页显示数据Demo
- 智能指针unique_ptr