永发信息网

【C语言 程序84】 题目:一个偶数总能表示为两个素数之和。

答案:1  悬赏:40  手机版
解决时间 2021-11-10 09:19
  • 提问者网友:太高姿态
  • 2021-11-10 04:54
【C语言 程序84】 题目:一个偶数总能表示为两个素数之和。
最佳答案
  • 五星知识达人网友:一秋
  • 2021-11-10 05:54
代码有严重缺陷。建议编码如下,并供对照查错:

#include
#include

//判一个给定的数值是否为素数,合数返回值为0, 素数返回值为1
int isPrime( int num )
{
int factor;
//以下代码行中也可以将循环终止条件改为小于等于 num 的平方根,循环次数虽有
//减少,但由于求平方根函数 sqrt 涉及到浮点运算,运算速度并不快,并需要链接
//数学库和包含 math.h 头文件,所以此处使用除以2后的商而不是平方根
for( factor=2; factor<=(num/2); factor++ )
{
if( num % factor == 0 ) return 0;
}
return 1;
}

int main( void )
{
int val, a, b;

do {
printf( "Please input an even number: " );
scanf( "%d", &val );
//注意要保证输入的值大于等于4且是偶数
} while( (val<4) || (val &1) );

//以下将输入的大于等于4的偶数先分解成两数之和的形式
for( a=2; a<=(val/2); a++ )
{
b = val - a;
//再确认和为输入偶数的两个数是否均为素数,是则输出
if( isPrime( a ) && isPrime( b ) )
{
printf( "%d = %d + %d\n", val, a, b );
}
}

return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯