我是C语言初学者,请问2~100之间的素数怎么求?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我是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个素数。 参考技术A #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;
参考技术B 楼上的答案可以参考将就一下!
抱歉,现在不是自己的电脑,所以帮不了更多了。。。
C 语言如何用for循环求1到100素数
回答您好,小编正在查询相关问题的信息,五分钟时间回复您!
您好,很荣幸帮您解答-2、同样,也是输出1-100以内的素数,这个构造一个数组,将其所有元素初始化为1,表示素数,这时取x从2开始,到100以内做循环。若x为素数,即prime[x]!=0,使得每个i*x位置元素置0(prime[i*x]=0),表示为非素数,循环结束前x+1。【希望回答对您有帮助,亲爱的】
提问请问具体错误在哪里
请问具体错误在哪里
回答您好,我们近期平台正在维护,暂时查看和发送不了图片,十分抱歉,希望能得到您的谅解。如果这题不是很着急的话,可以等过两天,平台维护好了,在来咨询即可,感谢您。
提问请打出C 语言如何用for循环求1到100素数的代码
回答#includeint main() int i,j,k; for(i=1; i<101; i++) k=i>1; for(j=2; j*j<=i; j++) if(i%j==0) k=0; break; if(k)printf("%d ",i); return 0;
提问电脑说break错了
回答public class Sushu1 public static void main(String args[]) int primes[] = new int[50]; primes[0] = 2; int cnt = 1; MAIN_LOOP: for ( int x=3 ; cnt 能让我看懂的话 代码 这让我怎么改,我当然知道代码错了,具体怎么改呢 这让我怎么改,我当然知道代码错了,具体怎么改呢 这是新的代码
#include<stdio.h>
int main()
int i,j,k;
for(i=1; i<101; i++)
k=i>1;
for(j=2; j*j<=i; j++)
if(i%j==0)
k=0;
break;
if(k)printf("%d ",i);
return 0;
以上是关于我是C语言初学者,请问2~100之间的素数怎么求?的主要内容,如果未能解决你的问题,请参考以下文章