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;
}
posted @ 2020-07-05 14:00  Qquun  阅读(62)  评论(0)    收藏  举报