编写C语言程序,求100~200之间所有素数。

作为一名对C语言的初学者,想多编一些程序,但遇到这个问题了,目前学了while、do-while、for循环语句。望能指点迷津,谢谢。... 作为一名对C语言的初学者,想多编一些程序,但遇到这个问题了,目前学了while、do-while、for循环语句。望能指点迷津,谢谢。 展开
 我来答
985967518
2015-12-26 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109908
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

素数就是只能被1和本身整除的数,先定义一个函数用于判断一个数是否是素数,在从100到200依次循环判断,如果是素数则输出。

参考代码:

#include<stdio.h>
int fun(int n){//判断n是否是素数
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1; 

int main()
{
 int i;
 for(i=100;i<=200;i++)//循环判断
  if(fun(i))
printf("%d ",i);
 return 0;
}
/*
运行结果:
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
*/
janenowitzki
2011-11-10 · TA获得超过2300个赞
知道小有建树答主
回答量:1443
采纳率:0%
帮助的人:557万
展开全部
#include<stdio.h>
void main()
{
void outputsushu(int k);
int i;
for(i=100;i<=200;i++)
outputsushu(i);
}
void outputsushu(int k)
{
int w=0,t;
for(t=2;t<=k/2;t++) /*从2判断到k/2个数,你也可以判断到根号k个数,但要用到math.h函数*/
{
if(k%t==0)
w=w++; /*通过定义一个标记,都不能整除,标记不变保持0值,整除了加1,判断最后有没有整除就可以*/
}
if(w==0)
printf("%d\t是素数\n",k);
else
printf("%d\t不是素数\n",k);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者mS5kRofZmI
2019-04-07 · TA获得超过3696个赞
知道大有可为答主
回答量:3103
采纳率:28%
帮助的人:206万
展开全部
#include<stdio.h>
void
main()
{
void
outputsushu(int
k);
int
i;
for(i=100;i<=200;i++)
outputsushu(i);
}
void
outputsushu(int
k)
{
int
w=0,t;
for(t=2;t<=k/2;t++)
/*从2判断到k/2个数,你也可以判断到
根号
k个数,但要用到math.h
函数
*/
{
if(k%t==0)
w=w++;
/*通过
定义
一个
标记
,都不能整除,标记不变保持0值,整除了加1,判断最后有没有整除就可以*/
}
if(w==0)
printf("%d\t是素数\n",k);
else
printf("%d\t不是素数\n",k);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王泽无敌真的
2011-11-19 · TA获得超过148个赞
知道答主
回答量:17
采纳率:0%
帮助的人:5.8万
展开全部
# include<stdio.h>
# include<math.h>
int main()
{
int i,k,n=0;
for(i=101;i<=200;i+=2)
{
for(k=2;k<=sqrt(i*1.0);k++)
{
if(i%k==0)break;
}
if(k>sqrt(i*1.0))
{
printf("%d ",i);
n++;
}
if(n%10==0)
printf("\n");
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b3779bd
2011-11-10 · TA获得超过761个赞
知道小有建树答主
回答量:600
采纳率:0%
帮助的人:346万
展开全部
#include<stdio.h>
#include<math.h>
int isprime(int n)
{
int i,k=0,m;
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)
k++;
if(!k)
return 1;
else
return 0;
}
void main()
{
int i,j=0;
for(i=100;i<200;i++)
if(isprime(i))
{printf("%5d",i);j++;
if(j%5==0)
printf("\n");}
printf("\n");
for(i=2;i<1000;i++)
if(isprime(i)&&isprime(i+2))
{printf("%5d",i);j++;
if(j%5==0)
printf("\n");}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式