用C语言编写在自然数中输出100以内的素数?

 我来答
小星星教育知识分享
高粉答主

2020-05-23 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67136

向TA提问 私信TA
展开全部

#include<stdio.h>

//输出100之内的所有素数

int main()

{

int i;

int j;

int flag = 1;

for(i = 2;i <= 100;i++)

{

for(j = 2;j <= i / 2;j++)

{

if(i % j ==0)

{

flag = 0;

break;

}

}

if(flag == 1)

{

printf("%d\n",i);

}

flag = 1;

}

return 0;

}

扩展资料

#include <stdio.h>

int main()

{

int a;

for (int i = 2; i < 100; i++)

{

int a = 0;

/* code */

for (int j = 2; j < i; j++)

{

/* code */

if (i % j == 0)

{

/* code */

a++;

}

}

if (a == 0)

{

/* code */

printf("%d is sushu\n", i);

}

else

{

/* code */

printf("%d is not sushu\n", i);

}

}

return 0;

}

小夏聊生活
高能答主

2019-12-09 · 专注于分享生活知识,热爱生活
小夏聊生活
采纳数:448 获赞数:114614

向TA提问 私信TA
展开全部

在自然数中输出100以内的素数的源代码如下:

#include <stdio.h>

#include <math.h>

int main()

{

int x;

scanf("%d",&x); 

if(x==2||x==3) 

{

printf("%d是素数",x);

return 0;

else if((x==1)||(x%6!=1&&x%6!=5)) 

{

printf("%d不是素数",x);

return 0;

}

else

{

for(int i=5;i<=sqrt(x);i+=6)

if(x%i==0||x%(i+2)==0) 

{

printf("%d不是素数",x);

return 0;

}

printf("%d是素数",x);

return 0;

}

扩展资料

/*判断101-200之间有多少个素数,并输出所有素数及素数的个数的源代码如下:

#include "math.h"

main()

{

intm,i,k,h=0,leap=1;

 printf("\n");

 for(m=101;m<=200;m++)

 {

k=sqrt(m+1);

for(i=2;i<=k;i++)

 if(m%i==0)

 {

leap=0;break;

}

if(leap)    /*内循环结束后,leap依然为1,则m是素数*/

{printf("%-4d",m);h++;

 if(h%10==0)

 printf("\n");

  }

 leap=1;

}

printf("\nThetotal is %d",h);

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fzp217
2007-11-20 · TA获得超过308个赞
知道小有建树答主
回答量:201
采纳率:18%
帮助的人:93.7万
展开全部
我提供两种方法先是最简单的数组筛子:把数组下标当做对象;
#include <stdio.h>
int main()
{
int a[101]={0},i,m;
for(i=2;i<=100;i++)
for(m=2;i*m<=100;m++)
a[i*m]=1; \*被赋为1的数组元素的下标则不是素数*\
for(i=2;i<=100;i++)
if(a[i]==0)
printf("%d",i);
}

下面给出另一代码:
#include <stdio.h>
int main()
{
int i,j,k=1;
printf("100以内的素数有:2 "); \*首先输出2*\
for(i=3;i<=100;i++)
{ for(j=2;j<i;j++)
if(i%j==0) { k=0;break; }
if(k==1)
printf("%d ",i);
}
}

上面代码还可用到sqrt()函数for(j=2;j<i;j++)改为for(j=2;j<sqrt(i);j++)这样可简化计算。希望对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mmx1234
推荐于2017-10-05 · TA获得超过525个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:288万
展开全部
#include <stdio.h>
int main(void)
{
int i,j,k;
printf("%d\n",2);2肯定是素数[em02]
for(i=1;i<=100;i+=2)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
printf("%d\n",i);
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1024程序员
2020-10-21 · TA获得超过374个赞
知道答主
回答量:457
采纳率:0%
帮助的人:23.3万
展开全部

C语言经典例子之求100之内的素数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式