杭电oj 2098——分拆素数和(包含如何判断质数及优化),java实现
question:分拆素数和
思路:
1.首先从1一直遍历到数据的1/2位置(因为后面的会和前面的重复),因为是要两个数,所以另一个数就是原数据减去遍历的数字(即i 和data-i),如果二者同时为质数的话,分拆方法计数器就加一,最后输出计数器即可
2.关于如何判断质数,其实就是找约数,数本身不用管,如果其余约数只有1.则为质数,最笨的方法就是从1到数据大小的遍历,这样太费时间
关于优化:
a.首先偶数不可能为质数,先一步排除
b.然后遍历的时候上限为该数的平方根(具体原因不记得了/捂脸)
c.循环的累加可优化为i+=2,因为如果可以被偶数整除,则一定可以被二整除,前面已经排除过了,把 i 限制为奇数就好
source code:
package hduoj; import java.util.Scanner; public class hdoj_2098 {
static boolean check(int data){//true indicates the number is prime,false means not
if(data<2) return false;
if(data==2) return true;
if(data%2==0) return false;
for(int i = 3;i<=Math.sqrt(data);i = i+2){
if(data%i==0) return false;
}
return true;
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true){
int data = sc.nextInt();
if(data==0) break;
int count = 0;
for(int i = 1;i<data/2;++i){
if(check(i)&&check(data-i)) {
count++;
//System.out.println(i);
}
}
System.out.println(count);
}
}
}
注:代码已经AC,贴上来的是在自己编译器里的,需要改关键字
希望对大家有所帮助
以上
杭电oj 2098——分拆素数和(包含如何判断质数及优化),java实现的更多相关文章
- HDU 2098 分拆素数和
HDU 2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768K (Java/Others) [题目描述 ...
- HDU 2098 分拆素数和(素数)
HDU 2098 分拆素数和(素数) http://acm.hdu.edu.cn/showproblem.php?pid=2098 题意: 给你一个偶数,问你这个偶数有多少种方式能由两个不同的素数构成 ...
- hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others) ...
- hdoj 2098 分拆素数和
分拆素数和 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 2098 分拆素数和(素数)
分拆素数和 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 杭电-------2098 分拆素数和(c语言写)
#include<stdio.h> #include<math.h> ] = { , }; ;//全局变量,用来标志此时已有多少个素数 int judge(int n) {// ...
- C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~
暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...
- 分拆素数和[HDU2098]
分拆素数和 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 杭电oj 2095 & 异或^符号在C/C++中的使用
异或^符号,在平时的学习时可能遇到的不多,不过有时使用得当可以发挥意想不到的结果. 值得注意的是,异或运算是建立在二进制基础上的,所有运算过程都是按位异或(即相同为0,不同为1,也称模二加),得到最终 ...
随机推荐
- Spring中@Value用法
Spring中可以通过@Value注解,将properties配置文件中的属性值注入到java成员变量,配置和使用方法如下(大部分转自csdn,也有自己实验部分): 一.配置 首先,@value需要参 ...
- mysql 连接查询 转换group_concat, find_in_set
1.a表 2.b表 3.连接(a_u_id 对应b表的b_id) select a.a_id,a.a_u_id,group_concat(b.b_name) from a_tb a left join ...
- P1055 ISBN号码(getline(cin,s); printf("%s",str); )
题目描述 每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字.1 位识别码和 3 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 - 就是分隔符(键盘上的 ...
- Perl-统计文本中各个单词出现的次数(NVDIA2019笔试)
1.原题 2.perl脚本 print "================ Method 1=====================\n"; open IN,'<','an ...
- simon effect (psychology experiment ) : build the function of wait4key()
## #the real experiment for simon effect #load the library which is our need import pygame import sy ...
- HDU 6417
题意 英文 做法 \(S_{a,b}\)为\(a\)与\(b\)中素数次幂奇偶性不同的集合,容易得出\[d_{a,b}=\left\{\begin{aligned}1 &&|S_{a, ...
- Bad Hair Day【单调栈】
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzMAAANgCAIAAACX06G4AAAgAElEQVR4Aey9e5RlW13fuw40HORxfI ...
- 浅识mysql主键
primary key:主键,又叫主键约束. primary key在表中是唯一代表一条记录的.primary key可以是1列,或者多列组合而成的. 如何查看一个表的主键是什么,举个例子: desc ...
- VS常用快捷键(最全)
智能提示:ctrl + J方法参数提示:ctrl + shift +空格智能标记(如:提示using.实现接口.抽象类等):ctrl + . 执行测试:ctrl + R,T(当前上下文),ctrl + ...
- Centos7 同时运行PHP5.2和PHP7.1配置
工作环境一直都是lnmp,其中PHP已经升级到7.1版本了.突然有份代码需要运行在PHP5.2上.但是之前的环境还是需要的,所以需要在centos中再安装PHP5.2. 0.之前的php7安装在/us ...