我是C语言初学者,请问2~100之间的素数怎么求?

详细一点,最好能在步骤后面加上注释。谢谢

素数是仅能被1和本身整除的数。
我们可用一个循环使需要判断的数从2开始一直到它本身进行“除”验证即可判断。程序如下,
#include<stdio.h>
int isp(int m) //定义一个判断素数的函数
{
int i;
for(i=2;i<m;i++) //将需要判断的数从2开始进行“除”运算
if(m%i==0)return 0; //m%i==0用于判断从2至m本身 有没有能够整除的数
return 1; //若有某一个数能被整除,说明此数不是素数“返回0”,若没有能被整除的,说明它是素数“返回1”
}
void main()
{
int i,j;
for(i=2,j=0;i<100;i++) //设定判断数值的范围,从2到99,因为1和100不用考虑,此处你也可以把范围自行设定,
if(isp(i)) //调用素数判断函数isp(),若返回值为“1”,证明是素数,执行下列运算,返回为“0”,则进行下一个for循环
{
j++;
printf("\n第%d素数是:%d\n",j,i);
}
}
运行得知 1到100区间内 总共有25个素数。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-31
#include <stdio.h>
#include <math.h>
int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/
{
int i;
for (i=2; i<=(int)sqrt((double)n); i++)
if (n%i==0) return 0;
return 1;
}
int main(void)
{
int i,j=0;
for (i=2; i<=100; i++)
if(ss(i))
{
j++;
printf("%5d",i);
if (j%5==0) printf("\n");
}
printf("\ntotal prime=%d\n",j);
return 0;
}
第2个回答  2011-07-31
楼上的答案可以参考将就一下!

抱歉,现在不是自己的电脑,所以帮不了更多了。。。

我是C语言初学者,请问2~100之间的素数怎么求?
if(m%i==0)return 0; \/\/m%i==0用于判断从2至m本身 有没有能够整除的数 return 1; \/\/若有某一个数能被整除,说明此数不是素数“返回0”,若没有能被整除的,说明它是素数“返回1”} void main(){ int i,j;for(i=2,j=0;i<100;i++) \/\/设定判断数值的范围,从2到99...

c语言怎样求2到100之间的素数?
void main(){ int n=0, i, j,w,k;for(i=2;i<=1000; i++){ w=1;k=sqrt(i);for (j=2; j<=k; j++)if (i%j==0) {w=0;break;} if (w) { ++n;if (n%10==0) printf("%d\\n",i);else printf("%d\\t",i);} ...

c语言怎么输出1到100的素数?
有三种方法:1、输出1-100以内的素数:2、同样,也是输出1-100以内的素数,这个构造一个数组,将其所有元素初始化为1,表示素数,这时取x从2开始,到100以内做循环。若x为素数,即prime[x]!=0,使得每个i*x位置元素置0(prime[i*x]=0),表示为非素数,循环结束前x+1。3、该方法是输出100...

c语言求100以内的所有素数
C语言求100以内的素数编程的思路和方法如下:1、首先需要定义两个整型的游标变量,用于后续的循环操作。这里定义两个变量为i,j。2、接着适用for循环来分别计算100以内的数。其中游标适用i变量。(因为第一个素数是3,所以循环变量游标从数字3开始)3、接着在第一个for循环的开头添加布尔变量tag,这个用...

c语言,求2~100的素数,并且存于a中
=2) \/* 除2之外的偶数显然不是素数 *\/return 0;for (i=2; i*i<=num; i++)if (num%i == 0)return 0;return 1;}\/* 遍历并以试除法确定n以内的素数 *\/\/* 将n以内的素数存入primeNums,并返回素数个数 *\/int primeNumbers (int primeNums[], int n) {int i, j;for (i=2, ...

C语言 输出1到100之间的全部素数?
要实现C语言输出1到100之间的所有素数,有三种方法可供选择:首先,你可以采用一种直观的遍历方法,从2开始,对每个数x进行检查。初始化一个数组,所有元素设为1,表示为素数。接着,对于每个x,如果它是个素数(即数组prime[x]不为0),将其所有倍数位置(prime[i*x])设为0,表示为非素数。这个...

C语言求100以内素数的问题
for(j=2;j<=i;j++){ if(i%j==0){ break;} } if(i==j){ count++;printf("%d ",i);} } printf("\\ncount=%d\\n",count);return 0;} 解题思路:素数,就是除了1和他本身,不能被其他数整除的数字。答案就是用100到200之间的每个数字,除以2到其本身前面的那一个数字,如果此...

用C语言求解1-100之间的所有素数。
Action(){ int i,j;int sum=0;int flag;\/\/是否为素数 for(i=2;i<=100;i++){ flag=1;for(j=2;j<=i-1;j++){ if(i%j==0){ flag=0;break;} } if(flag==1){ sum+=i;} } lr_output_message("sum=%d",sum);return 0;} 输出的结果:sum=1060 ...

c语言怎么求素数?
除2以外,素数皆为奇数,所以对2单独处理,从3开始,将100以内的奇数逐一进行素数考察,是则输出,不是则跳过。另设一计数变量控制换行,每输出5个素数添加一个回车。代码如下:include "stdio.h"int main(int argc,char *argv[]){ int i,n,t;pr include include main(){ int a,i,flag,coun...

用C语言编1到100之间的素数程序
{ int m,k,i;for(m=1;m<=100;m=m+2) \/\/m=m+2,因为偶数都不是素数,不用考虑,所以每次m+2.{ k=sqrt(m) \/\/先求这个数的平方跟 for(i=2;i<=k;i++) \/\/然后用i(从2到k,即m的平方跟)去除m,if(m%i==0) break; \/\/如果能被整除, 则不是素数,break if(i>...

相似回答
大家正在搜