题目描述
两个质数的和是 S,它们的积最大是多少?
输入格式
一个不大于 10000 的正整数 S,为两个质数的和。
输出格式
一个整数,为两个质数的最大乘积。数据保证有解。
#include<stdio.h>
main()
{
int i,x[20000],y[20000],j,k=0,s,max=0;
for(i=2;i<=10000;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(i==j)
{
y[k]=x[k]=i;k++;
}
}
scanf("%d",&s);
for(i=k-1;i>=0;i--)
for(j=k-1;j>=0;j--)//从大到小判断
{
if(x[i]+y[j]==s)
{
if(x[i]*y[j]>max)
max=x[i]*y[j];
}
}
printf("%d",max);
}