谁会啊 刚学Java不太能搞懂

Java这个该怎么做啊,刚学不久被难到了
题目五:质数中的质数
要求:给定一个闭区间,输出该区间内所有质数的和n。并判断n是否为质数:如果是则输出“n是质数”;如果不是则输出“n不是质数”,并输出n的所有约数(每行输出3个数);如果n=0则输出“n既不是质数也不是合数”。
输入:闭区间左端点a
闭区间右端点b
输出(情况1): 质数和为:n
n是质数。
输出(情况2): 质数和为:n
n不是质数。
它的约数有:
m1 m2 等

输出(情况3): 质数和为:n
n既不是质数也不是合数。
注:其中n = 区间[a,b]中所有质数的和;m1,m2等为n的约数。
例1:
输入:2
10
输出:质数和为:17
17是质数。

例2:
输入:2
20
输出:质数和为:77
77不是质数。
它的约数有:
7 11
例3:
输入:8
10
输出:质数和为:0
0既不是质数也不是合数。
数据范围:a,b∈[2,100000]且a≤b

代码参考如下:


public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int l = sc.nextInt();
        int r = sc.nextInt();
        if (l < 2) {
            l = 2;
        }
        int sum = 0;
        boolean isPrime;
        for (int i = l; i <= r; i++) {
            isPrime = true;
            if (i > 2 && i % 2 == 0) {
                isPrime = false;
            } else {
                for (int j = 3; j <= i / 3; j += 2) {
                    if (i % j == 0) {
                        isPrime = false;
                        break;
                    }
                }
            }
            if (isPrime) {
                sum += i;
            }
        }
        if (sum > 0) {
            System.out.println("质数和为:" + sum);
            isPrime = true;
            if (sum > 2 && sum % 2 == 0) {
                isPrime = false;
            } else {
                for (int i = 3; i <= sum / 3; i += 2) {
                    if (sum % i == 0) {
                        isPrime = false;
                        break;
                    }
                }
            }

            if (isPrime) {
                System.out.println(sum + "是质数。");
            } else {
                System.out.println(sum + "不是质数。\n它的约数有:");
                for (int i = 2; i < sum / 2; i++) {
                    if (sum % i == 0) {
                        System.out.print(i + " ");
                        sum /= i;
                        i = 1;
                    }
                }
                System.out.print(sum);
            }
        } else {
            System.out.println("质数和为:0\n0既不是质数也不是合数。");
        }

    }
}