判断一个正整数是否有两个素数的乘积

public static void main(String[] args) {
        int a = 44;
        if (isPrime(a)) {
            System.out.println("a是素数,找不到两个素数相乘");
        } else {
            for (int i = 2; i < a; i++) {
                if (a%i == 0) {
                    int s = a / i;
                    //判断两个乘数是否素数
                    if (isPrime(i) && isPrime(s)) {
                        System.out.println("a不是素数,找到两个素数相乘"+i+"x"+s);
                        break;
                    }else {
                        System.out.println("a不是素数,找不到两个素数相乘"+i+"x"+s);
                        break;
                    }
                }
            }
        }
    }

    private static boolean isPrime(int src) {
        double sqrt = Math.sqrt(src);
        if (src < 2) {
            return false;
        }
        if (src == 2 || src == 3) {
            return true;
        }
        if (src % 2 == 0) {// 先判断是否为偶数,若偶数就直接结束程序
            return false;
        }
        for (int i = 3; i <= sqrt; i+=2) {
            if (src % i == 0) {
                return false;
            }
        }
        return true;
    }

#笔试题目#
全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务