用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;}