#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k=0,q;
for(i=1000;i<=3000;i++)
{
q=sqrt(i);
for(j=2;j<=q;j++)
{
if(i%j==0)
{
break;
}
}
if(j>q)
{
printf("%d",i);
k++;
if(k%5==0)printf("\n");
}
else break;
}
}
我这一串代码应该怎么修改呢(打印出1000-3000内的所有素数,每五个一行)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 1、效果如下
2、详细代码解释如下
/* 1)打印出1000-3000内的所有素数 2)每五个一行 3)素数:一般指质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数 */ #include<stdio.h> #include<math.h> int main() { int i,j,k=0,q; for(i=1000;i<=3000;i++) { //算术平方根,sqrt(9)=3 //目的是获取到最大得自然数范围 //比如:81=9*9,所以可以通过算术平方根来获取最大得自然数范围 q=sqrt(i); //遍历范围内的自然数,是否有被整数的 //有,则表示不是质数,继续下一个循环 for(j=2;j<=q;j++) { if(i%j==0) { break; } } //如果j>q说明已经遍历完,则说明是质数 //如果有被整数是会提前结束,则说明不是质数 if(j>q) { printf("%d\t",i); //输出质数,并加一个空格隔开 k++; if(k%5==0){ //满5个换行 printf("\n"); } } //else break //当存在一个不是质数时,就结束了循环,直接跳出循环了 } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥20 java在应用程序里获取不到扬声器设备