#include
#include
#include
int prime(int num)//判断是否为质数
{
if (num == 1)
{
return 0;
}
else if (num == 2 || num == 3)
{
return 1;
}
else
{
int flag = 1;//假设是质数
for (int i = 2; i < num; i++)
{
if (num%i == 0)//存在非2及本身的因子,非质数
{
flag = 0;
break;
}
}
return flag;
}
}
void split(int num)
{
if (prime(num) == 1)
{
printf("%d是质数\n",num);
}
else
{
printf("%d不是质数\n",num);
for (int i = 2; i < num; i++)
{
if ((prime(i) == 1) && (prime(num - i) == 1))
{
printf("可以拆分成两个质数:%d和%d\n", i, num - i);
break;//有break找到一对就推出循环,如果不使用break则找到所有的组合
}
}
}
}
void main()
{
int num;
scanf_s("%d", &num);
split(num);
system("pause");
}
阅读(267) | 评论(0) | 转发(0) |