D. Taxes分拆素数和
Posted ac-ac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D. Taxes分拆素数和相关的知识,希望对你有一定的参考价值。
D. Taxes【分拆素数和】
题意
给出一个整数n,n可以由很多其他数的和组成,但不能出现1,当然也可以不拆分,然后问你:给你个n然后让你求n的最大因子为多少(不包括n本身),然后如果n被拆分的话,就是求拆分出来的这些数的因子和,规矩同上。
思路
哥德巴赫猜想:任何一个大于二的偶数都可以分解为两个素数和。 然后假如是奇数的话,直接特判下就好了。
代码实现
//链接:https://codeforces.com/problemset/problem/735/D
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 5;
bool f(ll n){
for(int i = 2; i * i <= n; i++){
if(n%i==0) return 0;
}
return 1;
}
int main(void) {
ll n;
cin >> n;
if(f(n)){
cout<<1<<endl;
return 0;
}
if(n%2==0){
if(n==2) cout<<1<<endl;
else cout<<2<<endl;
return 0;
}
else{
if(f(n-2)) cout<<2<<endl;
else cout<<3<<endl;
}
return 0;
}
以上是关于D. Taxes分拆素数和的主要内容,如果未能解决你的问题,请参考以下文章