JAVA程序填空,不要改变与输入输出有关的语句。

读入整数n,对于大于等于6的偶数,分解为两个素数之和。要求:如果n<6或n不是偶数,则要求输出(n不符合题目要求);否则要求输出一组素数之和a+b,且符合:(1)a<=b... 读入整数n,对于大于等于6的偶数,分解为两个素数之和。要求:
如果n<6或n不是偶数,则要求输出(n不符合题目要求);否则要求输出一组素数之和a+b,且符合:(1)a<=b;(2)a是所有能分解的格式中的最小素数。
import java.util.*;
public class T{
public static void main(String []args){
int ri,repeat,n,a,b,i,j;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1;ri<=repeat;ri++){
n=in.nextInt();
/*---------*/
}
}
}
展开
 我来答
匿名用户
2017-04-25
展开全部
/**
  * 判断一个数是否素数,是的话返回true,否则false
  * 
  * @param num
  * @return
  */
 public static boolean isPrime(int num) {
  boolean flag = true;
  if (num <= 1) {
  } else {
   for (int i = 2; i < num; i++) {
    if (num % i == 0) {
     flag = false;
    }
   }
  }
  return flag;
 }
 public static void main(String[] args) {
  int ri, repeat;
  System.out.println("请输入一个值:");
  Scanner in = new Scanner(System.in);
  repeat = in.nextInt();
  if (repeat < 6 || repeat % 2 != 0) {
   System.err.println(repeat + "不符合题目要求");
   return;
  }
  // 最小素数为2:,从2开始遍历
  int prime2 = 0;
  for (ri = 2; ri <= repeat; ri++) {
   if(!isPrime(ri)){
    //不是素数,跳过
    continue;
   }else{
    //是素数,那么用原值减去该素数得到第二个值
    prime2 = repeat - ri;
    if(isPrime(prime2)){
     //如果第二个值是素数,则中断查找,结果已出
     break;
    }else{
     prime2 = 0;//重置为0
    }
   }
  }
  if(prime2 != 0){
   //表示找出结果
   System.out.println("程序找出"+repeat+"的2个素数为:"+ri+","+prime2);
  }else{
   System.out.println("程序没找出"+repeat+"的2个素数!");
  }
  in.close();
 }

//有啥问题可追问
小锄头andrew
2017-04-25 · TA获得超过627个赞
小锄头andrew
采纳数:224 获赞数:627

向TA提问 私信TA
展开全部
分数太少了吧,我可以做啊
追问
提分了。你做吗
追答

没有辜负你,答案如下:

import java.util.Scanner;


public class Test {


public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(true){
int userInput = in.nextInt();
if(userInput < 6 || userInput % 2 != 0){
System.out.println("n不符合题目要求\n");
System.out.println(">>>");
}else{
for(int j=2;j<userInput;j++){
                    if(isPrime(j)&&isPrime(userInput-j)){
                        System.out.println(userInput+"="+j+"+"+(userInput-j));
                        break;
                    }
                }
}
}
}

/**
 * 检查是否是素数
 * @param n
 * @return
 */
public static boolean isPrime(int n){
        for(int i=2;i<n;i++){
            if(n%i==0){
                    return false;
            }
        }
        return true;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式