思路:一个偶数能由两个素数组成,一个奇数能由三个素数组成,判断奇数的时候有一个特殊情况,一个奇数可以分成一个偶数一个奇数,然而2是素数,所以把奇数分成2和一个奇数,然后判断那个奇数是不是素数,是输出2,不是输出3。
#include<bits/stdc++.h>
using namespace std;
int num=0;
int main()
{
int n,flag;
cin>>n;
if(n==2)
cout<<1<<endl;
else if(n%2==0)
cout<<2<<endl;
else
{
int flag=1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
if(flag)
{
cout<<1<<endl;
}
else
{
n-=2;
flag=1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
if(flag)
{
cout<<2<<endl;
}
else
cout<<3<<endl;
}
}
return 0;
}