用C语言编一程序,输出200~300之间的全部素数,要求用一行显示,中间用空格隔开

如题所述

#include <stdio.h>
#include <math.h>
int isPrimeNumber(unsigned int n)
{
int i = 0;
unsigned int t = (unsigned int)sqrt((double)n);
for (i = 2; i < t; ++i)
{
if (0 == n % i)
{
return 0;
}
}
return 1;
}
int main(void)
{
unsigned int m = 0, n = 0;
unsigned int i = 0;
printf("\nInput m and n: ");
scanf("%d%d", &m, &n);
if (m > n)
{
unsigned int tmp = m;
m = n;
n = tmp;
}
for (i = m; i <= n; ++i)
{
if (0 != isPrimeNumber(i))
{
printf("%d ", i);
}
}
}

计算结果:
Input m and n: 200 300
211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 289 293

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-11
include <math.h>

int i;
for(i = 200;i<=300;i++)
{
int j,nSqrt=sqrt(i);
for(j=2;j<=nSqrt;j++)
{
if(!(i%j))
{
break;
}
}
if(j>nSqrt)
{
printf("%d ",i);
}
}
第2个回答  2013-04-11
#include<stdio.h>
main(){
int result=1;

for(int i=200;i<=300;i++){
for(int k=2;k<i/2;k++){
int m=i%k;
if(m==0) {
result=0;
break;
}
}

if(result==1)

printf("%d ",i);

result=1;

}

system("pause");

}
第3个回答  2013-04-11
#include<stdio.h>
int main()
{
int i,j;
for (i=200;i<=300;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
break;
}
if(j==i)
printf("%d ",i);
}
return 0;
}

这个可以的……

追问

要求自动求出200——300间的素数怎么求? 就是不自己输入区间

第4个回答  2013-04-11
#include <stdio.h>
int isPrime(int n)
{
int i;
if(n%2==0) return 0;
for(i=3;i*i<n;i+=2)
if(n%i==0) return 0;
return 1;
}
int main()
{
int num;
for(num=200;num<=300;num++)
if(isPrime(num))
printf("%d ",num);
printf("\n");
return 0;
}