质数的和与积
题目描述
两个质数的和是 S S S,它们的积最大是多少?
输入格式
一个不大于 10000 10000 10000 的正整数 S S S,为两个质数的和。
输出格式
一个整数,为两个质数的最大乘积。数据保证有解。
样例 #1
样例输入 #1
50
样例输出 #1
589
#include<stdio.h>
#include<math.h>
#include<stdio.h>
#include<stdbool.h>
#include<string.h>//旺旺的碎冰冰~
bool num[10001]; //打一个素数表
int main(){
long long i,j,n,s=0;//s代表两个质数乘积的最大值
for(i=2;i<=100;i++){
for(j=2;j*i<=10001;j++){
num[i*j]=1;
}
}//打一个素数表
scanf("%lld",&n);
for(i=2;i<=n/2;i++){
if(num[i]==0&&num[n-i]==0){//验证加数与被加数是否为质数
if(i*(n-i)>s){
s=i*(n-i);//刷新两个质数之积的最大值
}
}
}
printf("%lld\n",s);
return 0;//CSDN:旺旺的碎冰冰~
}