质数的和与积
- 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💐点点关注,收藏不迷路💐 
       | 



















