首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
歌德巴赫猜想说任何一个不小于6的偶数都可以分解为两个奇素数之
[问答题]
歌德巴赫猜想说任何一个不小于6的偶数都可以分解为两个奇素数之和。 对此问题扩展,如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。 对于一个给定的整数,输出所有这种素数和分解式。 注意,对于同构的分解只输出一次(比如5只有一个分解2 + 3,而3 + 2是2 + 3的同构分解式 )。
添加笔记
求解答(0)
邀请回答
收藏(2)
分享
纠错
2个回答
添加回答
0
牛客563446938号
import java.util.Scanner;
public class a40 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
for(int i=2;i<=n/2;i++) {
for(int j=1;j<i;j++) {
if(i%j==0) {
if(j!=1) {
break;
}
}
if(j==i-1) {//j==i-1
int x=i;//x设定为第一个数
for(int z=n-x;z>n/2;z--) {//后面是从后往前来查找素数的
for(int c=1;c<z;c++) {
if(z%c==0) {
if(c!=1) {
break;
}
}
if(c==z-1) {
int h=z;//h为第二个数
if(x+h==n) {
System.out.println(x+"+"+h+"="+n);
}
}
}
}
}
}
}
sc.close();
}
}
发表于 2022-10-16 16:25:22
回复(0)
0
xiongyawe
public boolean prime(int n){
if(n<2) return false;
if(n==2) return true;
int len=(int)Math.sqrt(n)+1;
for(int i=2;i<=len;i++){
if(n%i==0){
return false;
}
}
return true;
}
public void solve(int n){
int[] a=new int[n];
int j=0;
for(int i=2;i<=n;i++){
if(prime(i)){
a[j++]=i;
}
}
int l=1<<j;
int k;
for(int f:a)
System.out.println(f);
for(int i=0;i<l;i++){
k=i;
int m=0;
int h=0;
String s="";
while(k>0){
if((k&1)>0){
m+=a[h];
if(s=="") {s=s+a[h];}
else s=s+"+"+a[h];
}
h++;
k>>=1;
}
if(m==n){
System.out.println(s);
}
}
}
发表于 2015-04-20 19:08:55
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
微软
穷举
上传者:
醉生梦死不自觉
难度:
2条回答
2收藏
6028浏览
热门推荐
相关试题
编写实现链表排序的一种算法。说明为...
微软
链表
排序
评论
(2)
给出一个函数来输出一个字符串的所有排列。
微软
链表
穷举
组合数学
评论
(4)
多少个点位于同一直线
穷举
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
golang工程师
评论
(317)
来自
牛客考试系统测试卷
从所给的四个选项中,选择最合适的一...
图形推理
评论
(1)
心理暗示是指个体在无意识情况下,从...
定义判断
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题