求出100---200之间的素数。(用C++语言)

如题所述

第1个回答  2007-04-04
200取平方根之后,在14和15之间,考虑不大于14的奇素数只有5个(3,5,7,11,13),我们为了节省运算时间,那么,我们只要用这5个数来检验每个数即可;因为大于2的偶数不是素数,我们只要检验每个奇数就行了.

#include <iostream>
using namespace std;

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的值置0,并跳出;
break;
}
}
if(prime==1)
cout<<n<<endl;//如果prime的值为1,也就是n是质数,那么,输出n,并换行;
n+=2;//n自加,进行下一个检验.
}
第2个回答  2007-04-03
#include <iostream.h>
#include <math.h>

void IsPrime(int n)
{
int flage = 0;
for(int i=2;i<sqrt(n);i++)
{
if(n%i==0)
{
flage=1;
continue;
}
}
if(i>=sqrt(n)&&flage==0)
cout<<n<<endl;
}

int main()
{
for(int i=100;i<200;i++)
IsPrime(i);
cout<<endl;
return 0;
}本回答被提问者采纳
第3个回答  2007-04-03
#include <iostream>
using namespace std;

int IsPrime(int n)
{
if (n ==2) /*排除n==2*/
return 1;

if (n%2 == 0 || n == 1) /*排除n为偶数或1*/
return 0;
for (int i = 3; i <= n / 2 + 1; i += 2) /*n/2+1可以换为sqrt(n)+1;注意#include <cmath>,有自动类型转换*/
if (n%i == 0) /*所有的偶数都不是质数(排除了2),每循环一次i加2,比如4,6就不用考虑整除n了*/
return 0;
return 1;
}

int main()
{

for (int i = 100; i <= 200; i++)
if (IsPrime(i))
cout<<i<<'\t';
cout<<endl

return 0;
}

求出100---200之间的素数。(用C++语言)
200取平方根之后,在14和15之间,考虑不大于14的奇素数只有5个(3,5,7,11,13),我们为了节省运算时间,那么,我们只要用这5个数来检验每个数即可;因为大于2的偶数不是素数,我们只要检验每个奇数就行了.include <iostream> using namespace std;void main(){ int n(101),i,prime;\/\/n的初值为101,...

《将100~200之间的素数输出》这个程序用c++语言怎么编
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;for(i=0;i<...

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语 ...
printf("100~200之间的素数有:");for(int i=100;i<200;i++){ k=0;for(int j=2;j

用C++编写程序:求100-200以内的所有素数
{ memset(prime,true,sizeof(prime));prime[0]=prime[1] = false;for(int i=2;i<SIZE;i++){ if(prime[i]){ for(int j=i*2;j<=SIZE;j+=i)prime[j] = false;} } } 在使用前比如main开始时第一句调用Prime();这样可以求出0~size之内的素数。如果i是素数则prime[i] = true;e...

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

用c++设计一个程序,求出100~200之间的所有素数并按每行五个素数的格式...
i+=2){ if (0 == data%i)return false;} return true;} else { return false;} } void main(){ int i;int nextline = 0;for(i=5; i<=100; i++){ if(IsPrimeNumber(i)){ nextline ++;cout<<i<<" ";if(0 == nextline%5)cout<<endl;} } cout<<endl;} ...

《将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以外)都不是素数,所以直接排除偶数 然后判断是否素数,看能否找...

c语言输出100到200之间的素数
首先先找出来100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。 先找出来100到200的所有整数,都为i 用i去对除了1和它本身以外的数求余。 正确的代码: #include<stdio.h> int main() { int conut = 0; int i = 0; for(i=100; i<=200;...

输出100到200之间所有的素数,并求其总和。c语言
include <stdio.h>void main(){int i,j,n=0,s=0;for(i=100;i<=200;i++){for(j=2;j<=i\/2;j++)if(i%j==0) break;if(j>i\/2){printf("%d ",i);s+=i;n++;if(n%10==0) printf("\\n");}}printf("\\nS=%d",s);} ...

相似回答