正题
luogu题目链接:https://www.luogu.org/problemnew/show/CF735D
题目大意
将一个数分解成若干个数使得这若干个数的最大因子最小。
解题思路
如果是质数就是1。如果是偶数根据哥德巴赫猜想就是2。或者把一个奇数减去2后是个质数也是2。否则就是3。
codecodecode
#include<cstdio>
using namespace std;
int n;
bool check(int n)
{if(n<2) return 0;for(int i=2;i*i<=n;i++)if(n%i==0) return 0;return 1;
}
int main()
{scanf("%d",&n);if(check(n)) putchar('1');else if(!(n&1)) putchar('2');else if(check(n-2)) putchar('2');else putchar('3');
}