题目:http://noi.openjudge.cn/math/7827/
分析:类似正方形和最大问题,越平分越面积越大
代码:
#include <cstdio>
#include <algorithm>
using namespace std;
const int Tmax=10005;
int n;
bool v[Tmax];
void init()
{
int i,j;
v[1]=true;
for(i=2;i<=n;i++)
for(j=i+i;j<=n;j+=i)
v[j]=true;
return;
}
void work()
{
int i,j,sum=0;
if(n%2==0)
{
i=j=n/2;
while(v[i]==true||v[j]==true)
{
i++;
j--;
}
sum=i*j;
}
else {
i=(n+1)/2;
j=i+1;
while(v[i]==true||v[j]==true)
{
i++;
j--;
}
if(i+j==n&&v[i]==false&&v[j]==false) sum=i*j;
j=(n+1)/2;
i=j-1;
while(v[i]==true||v[j]==true)
{
i++;
j--;
}
if(i+j==n&&v[i]==false&&v[j]==false) sum=max(sum,i*j);
}
printf("%d",sum);
return;
}
int main()
{
scanf("%d",&n);
init();
work();
return 0;
}