版权声明:原创,未经作者允许禁止转载 https://blog.csdn.net/Mr_wuyongcong/article/details/88763311
正题
luogu题目链接:https://www.luogu.org/problemnew/show/CF735D
题目大意
将一个数分解成若干个数使得这若干个数的最大因子最小。
解题思路
如果是质数就是1。如果是偶数根据哥德巴赫猜想就是2。或者把一个奇数减去2后是个质数也是2。否则就是3。
#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');
}