Java_S 发表于 2020-2-10 12:33

大神能不能帮我画个思路解释图

我是一名菜鸟程序员,今天做了一道编程题,有点理解不了。还请各位大神指导指导。
//一个偶数总能表示 两个素数之和
      Scanner can = new Scanner(System.in);
      int i,n;
      do{
         System.out.println("请输入一个大于等于6的偶数:");
         n = can.nextInt();
      }while (n<6 ||n%2!=0);

      fun fc = new fun();

      for ( i = 2; i <=n/2 ; i++) {
         if ((fc.fun(i))==1 && (fc.fun(n-i)==1)){
            int j = n-i;
            System.out.println(n+"="+i+"+"+j);
         }
      }
   }
}

class fun {
   public int fun(int a) {
      int i, flag = 0;
      if (a == 3) {
         flag = 1;
         return (flag);
      }
      for (i = 2; i <= Math.sqrt(a); i++) {
         if (a % i == 0) {
            flag = 0;
            break;
         }   else
            flag = 1;
         }
         return (flag);
      }

   }

jtljy 发表于 2020-2-10 12:55

哥德巴赫猜想 被你证明了?:lol

JieW_L 发表于 2020-2-10 13:03

fun() 函数是用来判断整数是否为素数的,是就返回1
把偶数数 n 分为 i 和 n-i 两部分,当两部分同时为素数的时候就证明了标题,只需要用循环让 i 增加,然后找到一组就可以证明你输入的偶数可以表示为两个素数之和

Java_S 发表于 2020-2-10 13:43

jtljy 发表于 2020-2-10 12:55
哥德巴赫猜想 被你证明了?

哈哈哈,没有那个本事

lihongzhang 发表于 2020-2-10 13:45

这是什么语言 VB?

Java_S 发表于 2020-2-10 13:45

JieW_L 发表于 2020-2-10 13:03
fun() 函数是用来判断整数是否为素数的,是就返回1
把偶数数 n 分为 i 和 n-i 两部分,当两部分同时为素数 ...

我就是不明白,......fun(int a),起到了什么作用

Java_S 发表于 2020-2-10 13:47

lihongzhang 发表于 2020-2-10 13:45
这是什么语言 VB?

Java语言

Java_S 发表于 2020-2-10 13:54

JieW_L 发表于 2020-2-10 13:03
fun() 函数是用来判断整数是否为素数的,是就返回1
把偶数数 n 分为 i 和 n-i 两部分,当两部分同时为素数 ...

我好像懂了{:1_918:}

JieW_L 发表于 2020-2-10 13:55

Java_S 发表于 2020-2-10 13:45
我就是不明白,......fun(int a),起到了什么作用

https://blog.csdn.net/qq_42889294/article/details/86578832
https://jingyan.baidu.com/article/59a015e3f747d8b7948865e4.html

987857149 发表于 2020-2-10 13:55

lihongzhang 发表于 2020-2-10 13:45
这是什么语言 VB?

java吧。。看到了pulic
页: [1] 2
查看完整版本: 大神能不能帮我画个思路解释图