int d[
10000];
int z[
10000][
5000];
int zhi(
int x)
{
for(
int i=
2;i<
x;i++)
{
if(
x%i==
0)
return 0;
}
return 1;
}
void f(
int n)
{
for(
int i=
0;i<=n;i++)
{
if(zhi(i))
d[i]=
0;
else
{
for(
int j=
2;j<=
sqrt(i);j++)
{
int t;
if(i
%j==
0&&zhi(j))
{
t=d[i-
2*j]+j;
if(t>d[i])
d[i]=t;
}
}
}
}
}
int main()
{
int n;
scanf(
"%d",&n);
f(n);
printf(
"%d",d[n]);
return 0;
}
转载请注明原文地址: https://www.6miu.com/read-36070.html