输出100 200之间的素数的个数,以及所有的素数 C++

输入无输出100->200之间的素数的个数,以及所有的素数。样例输入样例输出21 101 103 ... 197 199

由于100~200间的素数都是奇数,所以可设置一个循环遍历其间的奇数,再考察它们是否有1和自身以外的因子,若无此因子则是素数,输出并计数,最后输出素数个数。代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
int main(int argc,char *argv[]){
for(int t=0,i=101;i<200;i+=2){//遍历100~200间的奇数
for(int n=3;n*n<=i;n+=2)//考察这些数是否有1和自身以外的因子
if(i%n==0)
break;
if(i<n*n){//无上述因子则是素数
cout << i << ' ';//输出这个素数
t++;//素数个数计数
}
}
cout << "\n\nA total of " << t << " prime number above\n\n";
return 0;
}

运行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-28
#include <iostream>
using namespace std;bool isPrime(int num){
for (int i=2; i<num; i++){
if (num%i == 0){
return false;
}
}
return true;
}int main(){
int counter = 0;
cout<<"100到200间的素数为:"<<endl;
for (int i=100; i<=200; i++){
if (isPrime(i)){
cout<<i<<" ";
counter++;
}
}
cout<<endl<<"共"<<counter<<"个"<<endl;
return 0;
}
第2个回答  2013-11-28
#include <stdio.h>
#include <math.h> /* 程序中用到求平方根函数sqrt()*/
void main(void)
{
int i,m,k,n=0;
for(m=101;m<200;m+=2) /* 枚举100~200间的奇数*/
{
k=(int)sqrt((double)m); /* 求m的开平方→k */
for(i=3;i<=k;i++) /* 循环判断m能否被3~k之间所有的整数整除 */
{
if(m%i==0)
{
break; /* 如果m能被i整除,则不是素数,跳出此循环 */
}
}
if(i>k) /* 若m值均不能被小于k的值整除,则为素数*/
{
printf("%5d",m);
n++;
}
if(n%10==0) /*控制每行输出10个数*/
{
printf("\n");
}
}
printf("\n素数的个数为:%d\n",n);
}
第3个回答  2013-11-28
#include "math.h"bool isPrime(int num){ for (int i =2 ; i<=sqrt(num); ++i) { if (num % i ==0) return false; } return true;}void main(){ int counter = 0; for (int i =100; i<=200; ++i) { if (isPrime(i)) { counter++; printf("%d ",i); } }}

输出100 200之间的素数的个数,以及所有的素数 C++
由于100~200间的素数都是奇数,所以可设置一个循环遍历其间的奇数,再考察它们是否有1和自身以外的因子,若无此因子则是素数,输出并计数,最后输出素数个数。代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include <iostream>using namespace std;int main(int argc,char...

C语言求100-200的全部素数怎么写
int i,j,k;for(i = 100;i<=200;i++){ k = 1;for(j=2;j<=i\/2;j++){ if(i%j==0){ k = 0; break; } } if(k == 1){ printf("%4d",i);} } 质数就是只能被1及其本身整除的数,这里用双层循环,上层循环控制被除数,下层循环控制除数,下层除2,主要为了减少循环次数 ...

c++:计算并输出 100 至 200 范围内的所有素数。
i=101;i<200;i+=2){\/\/遍历100~200间的奇数 for(int n=3;n*n<=i;n+=2)\/\/考察这些数是否有1和自身以外的因子 if(i%n==0) break; if(i<n*n){\/\/无上述因子则是素数 cout << i << ' ';\/\/输出这个素数 t++;\/\/素数个数计数 } } cout ...

判断100-200之间有多少个数是素数,并输出这些数。 用C++6.0软件编写C语 ...
int m=0,k;printf("100~200之间的素数有:");for(int i=100;i<200;i++){ k=0;for(int j=2;j

《将100~200之间的素数输出》这个程序用c++语言怎么编
void main(){ int i=0,x,n,s;for(x=100;x<=200;x++){ s=0;for(n=2;n<=sqrt(x);n++){ if(x%n==0){ s=1;break;} } if(s==0)i++;printf("%4d\/n",x);} printf("geshuis:%d\/n",i);} 2.筛选法求素数:include<stdio.h> int main(){ int i,j,a[201],t=0...

求出100---200之间的素数。(用C++语言)
void main(){ int n(101),i,prime;\/\/n的初值为101,因为100不是素数;int a[5]={3,5,7,11,13};\/\/声明用来检验的数组;while(n<200)\/\/对不大于200的数进行检验;{ prime=1;\/\/初始化prime;for(i=0;i<5;i++){ if(n%a[i]==0){ prime=0;\/\/如果n能被其中一个数整除,把prime...

c++编程100到200之间的素数
include <iostream> include <cmath> using namespace std;bool Primes(int digital);int main(){ for(int i=100; i<200; i++){ if(Primes(i)){ cout<<i<<endl;} } return 0;} bool Primes(int n)\/\/判断一个数是不是素数.{ int max=sqrt(n+1);for(int i=2; i<max; i++...

用C++编写程序:求100-200以内的所有素数
{ if(prime[i]){ for(int j=i*2;j<=SIZE;j+=i)prime[j] = false;} } } 在使用前比如main开始时第一句调用Prime();这样可以求出0~size之内的素数。如果i是素数则prime[i] = true;else prime[i] = false;这种筛法是目前最快的算法之一。size可以很大,这样比朴素算法快好多倍!

C++输出1-200之间的素数。
可以改成那样的,不过输出建议你改下,可以改成这样的:include <iostream> include <cmath> using namespace std;int main( ){ for (int i=2;i<200; i++){ int maxv = sqrt(i);for (int j=2; j<=maxv; j++)if (i%j == 0)break;if (j == maxv+1 && j*j != i)cout...

《将100~200之间的素数输出》这个程序用c++语言怎么编程
我就给出伪代码吧!bool SuShu(int n){ for( int i = 3; i<n; i++)if( n%i == 0 )return 0;return 1;} void main(){ for( int i=101; i < 200; i+=2)if(SuShu(i))cout<<i<<std::ends;} 因为偶数(除2以外)都不是素数,所以直接排除偶数 然后判断是否素数,看能否找...

相似回答