C语言。质数是只能被一和它本身整除的数。写100-200所有质数的编程~~
关注:206 答案:5 mip版
解决时间 2021-02-11 12:06
提问者不再打扰你
2021-02-11 02:47
C语言。质数是只能被一和它本身整除的数。写100-200所有质数的编程~~
最佳答案
二级知识专家有你才幸福
2021-02-11 03:10
#include
#include
int main()
{
int n,i,k,m=0;
for(n=101;n<=200;n=n+2) //偶数肯定不是质数
{k=sqrt(n); //见P.S.
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>=k+1)
{printf("%5d",n);
m=m+1; //m用来控制换行,一行内输出10个质数;
}
if(m%10==0) //m累计到10的倍数换行;
printf("\n");
}
printf("\n");
}
P.S.判断一个数是否是质数,不需要被2~(n-1)范围内的各个整数去除,只须将n被2~√n之间的整数除即可。这样做可以大大减少循环次数,提高执行效率。
全部回答
1楼儚迴从偂
2021-02-11 06:23
#include
int main()
{
int i,j,flag;
printf("2 ");
for(i=3;i<=200;i++)
{
flag =1;
for(j=2;j*j<=i;j++)
if(i%j==0) { flag=0;break;}
if(flag) printf("%d ",i);
}
return 0;
}望采纳
2楼儚迴从偂
2021-02-11 05:08
#include
int main()
{
int i,j,flag;
for(i=100;i<=200;i++)
{
flag =1;
for(j=2;j<=i/2;j++)
if(i%j==0) { flag=0;break;}
if(flag) printf("%d ",i);
}
return 0;
}
//第二重for()中条件可以改为j*j<=i;这样执行效率更高!
3楼刺眼的青春
2021-02-11 05:00
#include
#include
int m,n;
m=100;
n=200;
int main()
{
int res[100]={0};
int i,j,k,flag;
k=0;
for(i=m;i<=n;++i)
{
for(j=2;j
if(i%j==0)
{
flag=0;
break;
}
else
flag=1;
if(flag==1)
res[k++]=i;
}
printf("%d至%d之间所有的质数为如下:\n",m,n);
for(i=0;res[i]!=0;++i)
printf("%d ",res[i]);
printf("\n");
return 0;
}
刚做的,还热乎着呢……好就不学习……生……
4楼輓畱嶼赱
2021-02-11 03:44
#include
void cal(int n1, int n2);
void main()
{
int n1, n2;
n1 = 100;
n2 = 200;
cal(n1, n2);//打印100 ~ 200
}
void cal(int n1, int n2)
{
int i, j;
int flag ;
for(i = n1, i <= n2; i++)
{
flag = 1;//设为质数
for(j = 2; j <= i - 1; j++)
{
if(i % j == 0)
{
flag = 0;//合数flag = 0
break;
}
}
if(flag != 0)
{
printf("%d\n", i);
}
}
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看