思路:一个偶数能由两个素数组成,一个奇数能由三个素数组成,判断奇数的时候有一个特殊情况,一个奇数可以分成一个偶数一个奇数,然而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;
}

本文介绍了一个简单的算法,用于判断一个正整数是否可以由几个素数相加得到,并且讨论了如何通过检查来确定这些素数。对于偶数,只需要两个素数;而对于奇数,则可以通过将奇数减去2后检查剩余部分是否为素数来解决。
773

被折叠的 条评论
为什么被折叠?



