CF735D-Taxes
题意:
给定一个数
n
n
n,拆乘若干份
a
i
a_i
ai,使得
∑
a
i
=
n
\sum a_i=n
∑ai=n,定义函数
F
(
x
)
F(x)
F(x)为除
x
x
x以外最大因子。
要求最小化
∑
F
(
a
i
)
\sum F(a_i)
∑F(ai)。
思路:
哥德巴赫猜想:
- 任一大于 2 2 2的偶数都可写成两个质数之和。
- 任一大于 5 5 5的整数都可写成三个质数之和。
讨论:
- n n n本是质数,答案是 1 1 1.
- n n n不是质数, n n n是偶数,答案是 2 2 2。
-
n
n
n不是质数,
n
n
n是奇数
- n − 2 n-2 n−2是质数,答案是 2 2 2。
- n − 2 n-2 n−2不是质数,答案是 3 3 3。
Code:
bool jd(ll n){
rep(i,2,sqrt(n)){
if(n%i==0)return 0;
}
return 1;
}
int main(){
long long n;
n=read();
if(jd(n))puts("1");
else if(n%2){
if(jd(n-2))puts("2");
else puts("3");
}
else puts("2");
return 0;
}