用C语言循环结构求解1-100之间的所有素数。写出程序设计思路、关键语句及解释、程序输出结果

 我来答
赵丽爱学习
2012-04-24 · 超过22用户采纳过TA的回答
知道答主
回答量:99
采纳率:100%
帮助的人:51万
展开全部
*问题分析与算法设计
素数就是仅能衩1和它自身整除的整数。判定一个整数n是否为素数就是要判定整数n能否被除1和它自身之外的任意整数整除,若都不能整除,则n为素数。
程序设计时i可以从2开始,到该整数n的1/2为止,用i依次去除需要判定的整数,只要存在可以整除该数的情况,即可确定要判断的整数不是素数,否则是素数。
*程序与程序注释
#include<stdio.h>
void main()
{
int n1,nm,i,j,flag,count=0;
do{
printf("Input START and END=?");
scanf("%d%d",&n1,&nm); /*输入求素数的范围*/
}while(!(n1>0&&n1<nm)); /*输入正确的范围*/
printf("...........PRIME TABLE(%d--%d)............\\n",n1,nm);
if(n1==1||n1==2) /*处理素数2*/
{
printf("%4d",2);
n1=3;count++;
}
for(i=n1;i<=nm;i++) /*判定指定范围内的整数是否为素数*/
{
if(!(i%2))continue;
for(flag=1,j=3;flag&&j<i/2;j+=2)
/*判定能否被从3到整数的一半中的某一数所整除*/
if(!(i%j))flag=0; /*若能整除则不是素数*/
if(flag) printf(++count%15?"%4d":"%4d\\n",i);
}
}
NXL421
2012-05-11
知道答主
回答量:29
采纳率:0%
帮助的人:6.4万
展开全部
#include<stdio.h>
#include<math.h>
void main()
{
int i,n,k;
for(n=2;n<=100;n++)//1到100之间的数
{
for(i=2;i<=n-1;i++)//1到n之间的数 :如n=9,那么i只能在2到8之间;
if(n%i==0) break;//判断能否被整除
if(i>n-1)//判断运算的i是否大于n-1
printf("%d ",n);

} printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
425524763
2012-04-24 · TA获得超过344个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:192万
展开全部
#include<cstdio>
bool a[101];
void prime()
{
//a[i]为false 代表i为素数。
a[1]=true;
for (int i=2;i<=100;i++)
for (int j=2;j*i<=100;j++)
a[i*j]=true;//枚举所有i*j<=100的数字,由于i>1,j>1则i*j一定不是素数。
}
int main()
{
prime();
for (int i=1;i<=100;i++)
if (!a[i]) printf("%d ",i);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在武昌湖记笔记的公孙瓒
2012-04-30 · 超过32用户采纳过TA的回答
知道答主
回答量:132
采纳率:100%
帮助的人:73.2万
展开全部
#include<stdio.h>
#include<math.h>
void main()
{
int k,i,n;
for(n=2;n<=100;n++)
{ k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i>k) printf("%d ",n);
}printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
童97
2012-04-24
知道答主
回答量:69
采纳率:0%
帮助的人:19.2万
展开全部
求素数是比较经典的编程,百度一下 文库里面很多求素数的,很详细!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式