例如,6=3+3,8=3+5,…,18=5+13。要求将6~100之间的偶数都表示为两个素数之和,输出时一行输出五组。
【输入形式】
无输入
【输出形式】
按从小到大、每组五行,每组间用一个空格分隔。
每组的格式为:%4d=%2d+%2d。
帮我看一下我错在哪里,输出没有东西
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,n,m,k,count;
count=0;
for(n=6;n<=100;n+=2){
for(a=3;a<=n/2;a++)
for(m=2;m<=a/2;m++)
if(a%m==0)
break;
if(m>a/2)
b=n-a;
for(k=2;k<=b/2;k++)
if(b%k==0)
break;
if(k>b/2)
printf("%d=%d+%d",n,a,b);
count++;
if(count%5==0)
printf("\n");
}
return 0;
}
1、基于sympy的素数判定。
2、看看100是否可以写成两个素数的和。
3、908有15种方法,写成两个素数的和。
4、看看10到1000之间的偶数,最多有多少种方法可以写成两个素数的和。答案是52。
5、看看1000以内的偶数,有多少个数字有52种方法可以写成两个素数的和。恰好有一个。
6、看看1000以内的偶数,有哪些数字只有1种方法可以写成两个素数的和。只有12。
7、看看10000以内的偶数,有哪些数字只有1种方法可以写成两个素数的和。这个过程耗时长达3分钟,答案仍旧是只有12。
8、看看2000以内的偶数,有哪些数字不可以写成两个素数的和。这个反例不可能在2000以内找到,也就没有任何返回。
修改如下
#include<stdio.h>去掉break 运行结果中混入了非素数加素数 这怎么办大神
追答#include<stdio.h>试试这个 加了一个else continue;
但又不是每组5行了 是count位置不对吗
追答这种情况下一个循环可能输出多组数据
所以输出换行的判断要加到里面
可以
#include<stdio.h>