您的位置 首页 知识

c语言输出素数个数(求1~100的素数编程)

用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个素数,基本思想是构造一个素数表,利用函数判断每个数是否能被其之前的素数整除,如果不能,则在素数表内加上该元素,不断循环(while循环结束条件是cnt即数组个数>100)。

扩展资料:

在这个小程序中主要用到的是for循环

for 循环语句的一般形式为:

for (表达式1; 表达式2; 表达式3)

{

语句;

}

需要注意的两点:

1) 表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。

2) for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。

因为 for 循环只能控制到其后的一条语句,而在C语言中分号也是一个语句——空语句。所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属于 for 循环了。

编程求1到100之间的所有素数,并输入结果?

#include<stdio.h>

int 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”:”%4dn”,i);

}

}

C语言纠错,题目是从键盘输入n的值,计算并输出从3到n之间所有素数的平方和。

  • for(i=n;){ 应加一句c=1;

C语言 输出101-500以内所有素数,每行打印7个,请改正程序中的错误。

  • 应该输出
  • 你的primer一直为0,所以输不出来

C语言输出100以内所有素数

  • C语言输出100以内所有素数,代码如下:#include stdio.hint main(){int i,j;for(i=2;i=100;i++){for(j=2;j*j=i;j++)if(!(i%j))break;if(i%j)printf("%dn",i);}return 0;}

C语言:输入100以内的数,判断是否为素数,若为素数则输出这个数,若不为素数,则从小到大输出公约数

  • #include stdio.hint main(){int n,i; scanf("%d",&n); for(i=2;i*i=n;i++) if(n%i==0)break; if(i*in)printf("%dn",n); else for(i=1;i=n;i++) i发紶篡咳诂纠磋穴单膜f(n%i==0)printf("%d ",i); return 0;}

从键盘输入一个正整数N,请输出大于N的第3个素数用C语言怎么做

  • #includestdio.hvoid main(){ int n,i,flag=0; scanf("%d",&n); while (n++) { for (i=2;i=n;i++)判断素数 if ((n)%i==0) break; if (n==i) { flag++; if (flag==3)输出第三个素数并推出while循环 { printf("第三个素数:%dn",n); break; } else n++; } }}

从键盘输入一个正整数N,请输出大于N的第3个素数用C语言怎么做

  • #includestdio.hvoid main(){ int n,i,flag=0; scanf("%d",&n); while (n++) { for (i=2;i=n;i++)判断素数 if ((n)%i==0) break; if (n==i) { flag++; if (flag==3)输出第三个素数并推出while循环 { printf("第三个素数:%dn",n); break; } else n++; } }}

求c语言大神解救,我想输出2000以内的素数,可输不出来?能帮忙看看错误吗?

  • #includestdio.hint sushu(int i);main(){int i,m; for(i=3;i=2000;i++) { sushu(i); m=sushu(i) if(m==0) { printf("%d ",i); } }}int sushu(int i){ int j,m;for(j=2;ji;j++){if(j%i==0)break;} if(j=i)m=1;elsem=0;return m;}
  • 额 有一个特性就是一个数的素数不会超过它的平方根所以你函数sushu枚举的时候 jsqrt(i)就好了,2000*2000明显会超时

c语言编程输入一个数输出比它大的一个素数

  • 如输入5输出7输入11输出13
  • # include stdio.hint main (){int a;printf("input a number:n");scanf("%d",&a);int i,status;while(1){status = 0;a++;for(i=2;i=a2;i++){if(a%i == 0)status =1;}if(status == 0)break;}printf("%dn",a);return 0;}

c语言编程题 将a数组的素数放入b数组中,并输出b数组

  • 急用
  • 如果是素数,直接赋值给B数组就对了

c语言用for输出素数

  • #includestdio.hint main(){ int i,j,t; for(i=100;i=200;i++) for(j=2;ji;j++) { if(i%j==0)printf("%dt",i); } return 0;}问题补充: 一个数会输出好几遍,怎么才能让一个数就输出一遍
  • #includestdio.hint main(){ int i,j,t; for(i=100;i=200;i++) { for(j=2;ji;j++) { if(i%j==0) break;能整除说明i不是素数 } if(j==i) printf("%dn",i); } return 0;}