HDU2098 分拆素数和
2024-08-27 09:18:43
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30
26
0
Sample Output
3
2
解题思路:先欧拉筛数然后在进行试探分析是否可以两个素数的和为这个偶数。
import java.util.Scanner; public class Test {
public static void main(String[] args){
Scanner input = new Scanner(System.in); int count =0;
int num = 100000;
boolean[] bl = new boolean[100000000];
int[] primeList = new int[num];
for(int i =2;i < num;i++){
if(!bl[i]){
primeList[count++] = i;
}
for(int j =0;j < count;j++){
if(i*primeList[j] > num){
break;
}
bl[i*primeList[j]] = true;
if(i%primeList[j]==0){
break;
}
}
} for(;;){
int sum = input.nextInt();
if(sum ==0){
break;
}
int count1 =0;
for(int i =2;i < sum/2;i++){
if(!bl[i]&&!bl[sum-i]){
if(i!=sum-i)
count1++;
System.out.println(i+" " +(sum-i));
} }
System.out.println(count1);
} }
}
最新文章
- HDU3068 回文串 Manacher算法
- dotNet使用HttpWebRequest模拟浏览器
- rados命令
- python numpy 教程
- C++之路进阶——bzoj1468(tree)
- shell与kernel的理解 转载
- JAVA获得系统配置文件的System Properties
- DreamWeaver文件保存时,提示";发生共享违例";问题的解决方法
- 对synchronized关键字的理解
- smartgit试用到期不用序列号怎么继续使用
- JavaWeb 后端 <;十四>; 文件上传下载
- 事务的特性(ACID)
- GC真正的垃圾:强、软、弱、和虚 对象
- 计算机网络Web应用层与运输层(HTTP/TCP)
- 什么是javabean及其用法
- snmp监控f5
- vue-CLI踩坑记
- 线程的定时器Timer
- action中session的存取
- idea 开发插件。
热门文章
- jsp四大作用域之request
- 《spss统计分析与行业应用案例详解》:实例十二 卡方检验
- CF Gym 100187J 	Deck Shuffling (dfs判连通)
- [学习笔记] Markdown语法备忘
- cv2.solvepnp 相机的位姿估计
- ios基础学习
- GC执行finalize的过程以及对象的一次自我拯救
- Nodejs:npm run build之后,dist\index.html页面在火狐中可以正常显示登录页面并登录成功,在Chrome中可以正常显示登录页面,登录失败
- c++ json字符串转换成map管理
- nodejs 静态资源服务与接口代理跨域