C语言编程验证哥德巴赫猜想,任何大于2的偶数都是两个素数之和(100以内)

才学C语言,用最基础的,函数都不要用... 才学C语言,用最基础的,函数都不要用 展开
 我来答
RFrith
推荐于2017-11-26 · TA获得超过258个赞
知道小有建树答主
回答量:118
采纳率:100%
帮助的人:117万
展开全部
#include <stdio.h>

int isPrime(int);

int main() {
int n;
for (n = 4; n <= 100; n += 2) {
int i;
for (i = 2; i <= n / 2; i++)
if (isPrime(i) && isPrime(n - i)) {
printf("%d = %d +  %d\n", n, i, n - i);
break;
}
}
return 0;
}

int isPrime(int n) {
int i;
if (n < 2)
return 0;
if (n == 2)
return 1;
else
for (i = 2; i * i <= n; i++)
if (n % i == 0)
return 0;
return 1;
}

 如果不使用函数,代码将臃肿不堪(可能超过百行),难以理解。

laughlee7468
推荐于2018-10-02 · TA获得超过2004个赞
知道小有建树答主
回答量:541
采纳率:100%
帮助的人:671万
展开全部
#include <stdio.h>
void main( )
{
int i, j, k, IsPrime;
for(i = 4; i <= 100; i += 2) /*偶数i从4到100*/
{
for(j = 2; j <= i / 2; j++) /* 将j从2到i/2进行测试 */
{
for(k = 2, IsPrime = 1; (k <= j / 2) && IsPrime; k++) /*判断j是否为素数*/
if(j % k == 0) IsPrime = 0;
if(IsPrime) { /*如果j是素数*/
for(k = 2, IsPrime = 1; (k <= (i - j) / 2) && IsPrime; k++) /*判断i-j是否是素数*/
if((i - j) % k == 0) IsPrime = 0;
if(IsPrime) /*如果i-j也是素数,则找到了i的一个解,将其输出,下一个偶数i*/
{
printf("%d = %d + %d\t", i, j, i - j);
break;
}
}
}
}
}
除了printf与main外,没有用到其他任何的函数,楼主不妨试一试。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
comil4444
2014-04-14 · TA获得超过113个赞
知道答主
回答量:101
采纳率:100%
帮助的人:39.9万
展开全部
#include<stdio.h>
int su(int n)//判断是否为素数
{
int i,count=0;
for(i=1;i<=n;i++)
if(n%i==0)
count++;
if(count==2)
return 1;
else
return 0;
}

void main()
{
int n;
int i;
do
{
printf("输入一个2-100之间的偶数:");
scanf("%d",&n);

}while((n<=100) && (n>=4) && (n%2!=0));//判断输入是0和100之间的偶数
for(i=2;i<=n/2;i++)
{
if(su(i)&&su(n-i))//判断是否两个因数都为素数,如果是则打印出来
printf("%d=%d+%d\n",n,i,n-i);
}
}

可以打印出所有该偶数的质素因子之和。楼主可测试一下;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
缪韵宣寄波
2020-02-28 · TA获得超过3945个赞
知道大有可为答主
回答量:3106
采纳率:33%
帮助的人:214万
展开全部
1234567891011121314151617181920212223242526272829#include <stdio.h> int isPrime(int); int main() { int n; for (n = 4; n <= 100; n += 2) { int i; for (i = 2; i <= n / 2; i++) if (isPrime(i) && isPrime(n - i)) { printf("%d = %d + %d\n", n, i, n - i); break; } } return 0;} int isPrime(int n) { int i; if (n < 2) return 0; if (n == 2) return 1; else for (i = 2; i * i <= n; i++) if (n % i == 0) return 0; return 1;}
如果不使用函数,代码将臃肿不堪(可能超过百行),难以理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科精选
高粉答主

2020-12-18 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.1亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式