Description 两个质数的和是S,它们的积最大是多少? Input 一个不大于10000的正整数S,为两个质数的和。 Output 一个整数,为两个质数的最大乘积。数据保证有解。 Sample Input 50 Sample Output 589
AC Code:
#include <iostream> using namespace std; bool prime(int n); int main() { int s, i, m, max, temp; bool flag = true; cin >> s; m = s / 2 + 1; for (i = 2; i < m; i++) { temp = s - i; if (!((prime(i)) && (prime(temp)))) { continue; } if (flag) { max = i * temp; flag = false; continue; } if ((i * temp) >= max) { max = i * temp; } } cout << max << endl; return 0; } bool prime(int n) { int i, m = n / 2 + 1; if (n < 2) { return false; } else if (n == 2) { return true; } for (i = 2; i < m; i++) { if (n % i == 0) { return false; } } return true; }