永发信息网

C语言纠错。。。。帮忙

答案:3  悬赏:70  手机版
解决时间 2021-04-13 16:50

从小到大找出五个素数,使后面的数比前面的数都大12。

我写了下面的代码。能过编译。。结果错误。。。请大家找找原因

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

main()
{
int i,k,j,a[100],b[100],m=0,n=1;
for(i=2;i<100;i++)
{ k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0) break;
if(j>k) a[m++]=i;
} // 求出100内的全部素数放在数组a中、


for(i=0;i<m-4;i++)
{ b[0]=a[i];
for(j=i+1;j<m;j++)
if(a[j]-b[0]==12||a[j]-b[0]==24||a[j]-b[0]==36||a[j]-b[0]==48)
{ b[n++]=a[j];

}
if(n<5) //如果没有到5个 ,回到初值
{
n=1;
break;
}
else for(i=0;i<n;i++)
printf("%d",b[i]);
}

}

最佳答案

其实按着LZ的大概思路是可以的。。。只是LZ实现上出了点错误而已···改了一点···


#include<stdio.h>
#include<math.h>
main()
{
int i,k,j,a[100],b[100],m=0,n=1,temp;
for(i=2;i<100;i++)
{
k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)
break;
if(j>k)
a[m++]=i;
} // 求出100内的全部素数放在数组a中、
for(i=0;i<m-4;i++)
{
n = 0;
b[n]=a[i];
for(j=i+1;j<m;j++)
{
if(a[j]-b[n]==12)
{
b[++n]=a[j];
}
}
if(n<4) //如果没有到5个 ,回到初值
{
continue;
}
for(i=0;i<=n;i++)
printf("%d ",b[i]);
}
}

全部回答
首先你的思路有问题 1.你能保证100以内的素数满足这个条件? 2.这些满足要求的素数 不一定是紧挨着的 综合这些问题 我写了一个程序 供你参考一下 #include<stdio.h> #include<math.h> bool IsPrime(int num) { int i,j; for (i=2;i<=sqrt(num);++i) { if (!(num%i)) { return false; } } return true; } void main() { int i=1; while(!(IsPrime(i)&&IsPrime(i+12)&&IsPrime(i+24)&&IsPrime(i+36)&&IsPrime(i+48))) { i++; } printf("%d %d %d %d %d\n",i,i+12,i+24,i+36,i+48); }
你这样只能检测前后连续的素数是否满足条件,而满足条件的5个素数不一定是前后连续的 所以你可以换个方法:先写个函数判断某个数是i否是素数,如果是,依次检测i+12,i+24,i+36和i+48是不是素数,如果5个数都是素数那么满足条件输出并结束,我写的一个代码如下: #include<stdio.h> #include<math.h> int isprime( int n ) { int j, k; k=sqrt(n); for(j=2;j<=k;j++) if(n%j==0) break; if(j>k) return 1; else return 0; } main() { int i, m = 0; for ( i = 2; m < 5; ++i ) { if ( isprime( i ) && isprime( i+12 ) && isprime( i+24 ) && isprime( i+36 ) && isprime( i+48 ) ) { printf( "%d %d %d %d %d\n", i, i+12, i+24, i+36, i+48 ); break; } } } 结果是: 5 17 29 41 53
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
不知道为什麽我好怕面对
人最多可以活多少岁?
奇骏2.5车重
(海贼王)所有75H ,4H出场过的漫画集数!因
我新买的诺机亚5220手机.为什么USB数据线和电
50岁的男人老想着自己46岁的小姨子是怎么回事
打印机打印几页后就开始断墨
狗狗特别怕放炮怎么办?
QQ账户支付密码忘记怎么办,不是财付通的
辽宁省节约用水办公室怎么去啊,有知道地址的
韩语可以自学吗,自学韩语可以成功吗
市面上的混合汽油什么意思?
小腿皮肤粗糙怎么办?
《刑法》规定,将他人的遗忘物或者埋藏物非法
下列有关酶的叙述正确的是:①是由分泌功能的
推荐资讯
工行卡上写着国民旅游休闲卡,牡丹灵通卡,Qu
暗示说话注意的诗句,中国有关文明的名人名言
普力马1.6冷车不好起动热车正常是怎么回事
浙江现在羊肉多少钱一斤
QQ游戏寻仙多小级才可以点亮图标?
小米凉皮怎么做
寻诛仙练器方法
电视剧仙剑奇侠传一里有一个灵儿的背景音乐,
在淘宝上哪卖这样的衣服?
事业单位登记管理局科员和办公室科员哪个工资
餐飲店签约成功祝贺词,餐厅开业的祝福语
银行的人到单位拍个工作照,身份证件就能办信
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?