xbns.net
当前位置:首页 >> C语言输出100到200素数 >>

C语言输出100到200素数

逻辑错误,准确位置为14行,正确代码如下:#include<stdio.h> int main() { int i = 0; for (i=100; i<=200; i++) { int j = 0; for (j=2; j<=i-1; j++) { if (i%j == 0) { break; } } if (j>=i) { printf("%d",i); } } return 0; } 扩展资料:质数又称素数.一个大于1的自然

#include <stdio.h> int main() { int n,count; int i; for(n=101; n<=200; n++) { count=0; //每次都需要初始化count for(i=2; i<n; i++) { if(n%i==0) count++; } if(count ==0) printf("%d\n",n); } return 0; }

#include"stdio.h"#include"math.h" void main() { int m,i,k,n=0; for(m=101;m<=200;m=m+2) { k=sqrt(m); for(i=2;i<=k;i++) { if(m%i==0) break; } if(i>=k+1) //应该是for循环判读是否被2到k整除完成后再输出. { printf("%d\t",m); n=n+1; } if(n%10==0)printf("\n"); } getch(); }

其实这里的原理很简单,外层循环从100到200,就是把100-200的每个数拿出来判断一下是不是素数,在你的代码 中就是i,根据素数的定义只能被1和本身整除的数,所以,我们从 2 到 i-1 每个数来除i,遇到能整除就不是素数,循环结束都不能整除的就是素数,其实并不需要从2循环到i-1,只需要从2循环到sqrt(i)就可以了,当然你的代码循环到i/2肯定也是可以的.循环到i/2是为了提高效率,如果小于i/2的数不能被i整除,那么i/2后面的数肯定也不能被i整除,比如判断7的时候,7/2=3,如果7不能被3整除,那么也没有可能被4、5、6整除 如果更加追求效率只需要判断到i开方的那个数就行了,比如16,只需从2判断到4就行了

#include int main() { int n,count; int i; for(n=101; n { count=0; //每次都需要初始化count for(i=2; i { if(n%i==0) count++; } if(count ==0) printf("%d\n",n); } return 0; }

素数是只有1和自身才能整除的数.调用自定义的函数prime,对100~200间的奇数进行判断,是素数则输出.举例代码如下:#include "stdio.h" int prime(int n){//判断100~200间的数是否为素数 int i; if(!(n&1)) return 0; for(i=3;i*i<=n;i+=2) if(!(n%i

程序如下:#include<stdio.h>#define MAXCNT 1000 int prime[MAXCNT]; void outprime(int n1,int n2){ int i,j; for(i=n1;i<=n2;i++){ j=2; while(j*j<=i)if(i%j++==0)break; if(j*j>i)printf("%d ",i); } } int main() { outprime(100,200); return 0; }

#include#include int main() { int i,j,k=0; for(i=100;i { for(j=2;j if(i%j==0) break; if(j>sqrt(i)) k++; } printf("%d\n",k); return 0; }

我用 c语言输出10~100之间的全部素数 代码!!!!!!!!!!!!!!!!!!!!!!#include<stdio.h>void main(){int num,i,temp;for (num=10;num<101;num++){temp=0;for (i=2;i<num;i++){if(num%i==0){temp=1;}}if(temp==0){printf("%d ",num);}}printf("\n");}

#include <stdio.h> int main(void) { int i,j; for (i = 100; i <= 200; i++) { for(j = 2; j <= i/2; j++) { if (i%j == 0) { break; } } if(j > i/2) { printf("%d \n", i);//输入素数 } } while(1){};//全部素数输出完成,进入死循环 return 0; }

sbsy.net | mydy.net | prpk.net | sgdd.net | mdsk.net | 网站首页 | 网站地图
All rights reserved Powered by www.xbns.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com