欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 质数的和与积

质数的和与积

2025/4/4 6:08:15 来源:https://blog.csdn.net/qq_41840843/article/details/144251482  浏览:    关键词:质数的和与积

质数的和与积

      • C语言代码
      • C++ 代码
      • Java代码
      • Python代码


💐The Begin💐点点关注,收藏不迷路💐

两个质数的和是S,它们的积最大是多少?

输入

一个不大于10000的正整数S,为两个质数的和。

输出

一个整数,为两个质数的最大乘积。数据保证有解。

样例输入

50

样例输出

589

C语言代码

#include <stdio.h>
#include <stdbool.h>

// 判断一个数是否为质数
bool isPrime(int num) {
    if (num < 2) return false;
    for (int i = 2; i * i <= num; i++) { // 从2到根号num判断能否整除
        if (num % i == 0) return false;
    }
    return true;
}

int main() {
    int s;
    scanf(“%d”, &s);
    int maxProduct = 0;
    for (int i = 2; i <= s / 2; i++) { // 只需遍历到和的一半即可
        if (isPrime(i) && isPrime(s - i)) { // 判断i和s-i是否都是质数
            int product = i * (s - i);
            if (product > maxProduct) { // 更新最大乘积
                maxProduct = product;
            }
        }
    }
    printf(“%d\n”, maxProduct);
    return 0;
}

C++ 代码

#include <iostream>
#include <cmath>
using namespace std;

// 判断一个数是否为质数
bool isPrime(int num) {
    if (num < 2) return false;
    for (int i = 2; i <= sqrt(num); i++) { // 从2到根号num判断能否整除
        if (num % i == 0) return false;
    }
    return true;
}

int main() {
    int s;
    cin >> s;
    int maxProduct = 0;
    for (int i = 2; i <= s / 2; i++) { // 只需遍历到和的一半即可
        if (isPrime(i) && isPrime(s - i)) { // 判断i和s-i是否都是质数
            int product = i * (s - i);
            if (product > maxProduct) { // 更新最大乘积
                maxProduct = product;
            }
        }
    }
    cout << maxProduct << endl;
    return 0;
}

Java代码

import java.util.Scanner;

public class PrimeSumProduct {
     // 判断一个数是否为质数
    static boolean isPrime(int num) {
        if (num < 2) return false;
        for (int i = 2; i * i <= num; i++) { // 从2到根号num判断能否整除
            if (num % i == 0) return false;
        }
        return true;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int s = scanner.nextInt();
        int maxProduct = 0;
        for (int i = 2; i <= s / 2; i++) { // 只需遍历到和的一半即可
            if (isPrime(i) && isPrime(s - i)) { // 判断i和s-i是否都是质数
                int product = i * (s - i);
                if (product > maxProduct) { // 更新最大乘积
                    maxProduct = product;
                }
            }
        }
        System.out.println(maxProduct);
    }
}

Python代码

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1): // 从2到根号num判断能否整除
        if num % i == 0:
            return False
    return True

s = int(input())
max_product = 0
for i in range(2, s // 2 + 1): // 只需遍历到和的一半即可
    if is_prime(i) and is_prime(s - i): // 判断i和s-i是否都是质数
        product = i * (s - i)
        if product > max_product: // 更新最大乘积
            max_product = product
print(max_product)

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词