您的位置:首页 > 其它

将一个偶数分解为两个素数的和并打印

2012-12-10 16:10 162 查看
首先,要写一个判断是否为素数的函数,需要考虑到,从2测试到根号N就可以,具体实现代码

int isP(int n)
{
int i;
int sign = 1;//标记是否为素数,这也是以后会经常用到的。
for(i = 2; i <= sqrt(n); i++)
{
if(n % i == 0)//当能被整除时退出。
{
sign = 0;
break;
}
}
return sign;
}


之后就是主函数的判断:

int main()
{
int i;
int m;
scanf("%d",&m);
if(m == 2)
{
printf("no answer\n");
return 0;
}
if(m == 4)
{
printf("2,2\n");
return 0;
}
for(i = 3; i < m / 2 + 1; i++)
{
if(isP(i) && isP(m - i))
{
printf("%d,%d\n",i,m - i);
}
}
  return 0;
}


问题就可以解决了。

需要注意的是~ 在主函数的算法中还有很大的优化空间,大家继续优化吧。

有什么问题可以留言询问,最后附上完整代码:

#include<stdio.h>
#include<math.h>

int isP(int n)
{
int i;
int sign = 1;
for(i = 2; i <= sqrt(n); i++)
{
if(n % i == 0)
{
sign = 0;
break;
}
}
return sign;
}

int main()
{
int i;
int m;
scanf("%d",&m);
if(m == 2)
{
printf("no answer\n");
return 0;
}
if(m == 4)
{
printf("2,2\n");
return 0;
}
for(i = 3; i < m / 2 + 1; i++)
{
if(isP(i) && isP(m - i))
{
printf("%d,%d\n",i,m - i);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐