CF735D Taxes(数学)
CF735D-Taxes
题意:
给定一个数\(n\),拆乘若干份\(a_i\),使得
\(\sum a_i=n\),定义函数\(F(x)\)为除\(x\)以外最大因子。
要求最小化\(\sum F(a_i)\)。
思路:
哥德巴赫猜想:
- 任一大于\(2\)的偶数都可写成两个质数之和。
- 任一大于\(5\)的整数都可写成三个质数之和。
讨论:
- \(n\)本是质数,答案是\(1\).
- \(n\)不是质数,\(n\)是偶数,答案是\(2\)。
- \(n\)不是质数,\(n\)是奇数
- \(n-2\)是质数,答案是\(2\)。
- \(n-2\)不是质数,答案是\(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;
}