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