编写C语言程序,求100~200之间所有素数。

作为一名对C语言的初学者,想多编一些程序,但遇到这个问题了,目前学了while、do-while、for循环语句。望能指点迷津,谢谢。

素数就是只能被1和本身整除的数,先定义一个函数用于判断一个数是否是素数,在从100到200依次循环判断,如果是素数则输出。

参考代码:

#include<stdio.h>
int fun(int n){//判断n是否是素数
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1; 

int main()
{
 int i;
 for(i=100;i<=200;i++)//循环判断
  if(fun(i))
printf("%d ",i);
 return 0;
}
/*
运行结果:
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
*/
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-10
#include<stdio.h>
void main()
{
void outputsushu(int k);
int i;
for(i=100;i<=200;i++)
outputsushu(i);
}
void outputsushu(int k)
{
int w=0,t;
for(t=2;t<=k/2;t++) /*从2判断到k/2个数,你也可以判断到根号k个数,但要用到math.h函数*/
{
if(k%t==0)
w=w++; /*通过定义一个标记,都不能整除,标记不变保持0值,整除了加1,判断最后有没有整除就可以*/
}
if(w==0)
printf("%d\t是素数\n",k);
else
printf("%d\t不是素数\n",k);
}本回答被提问者和网友采纳
第2个回答  2019-04-07
#include<stdio.h>
void
main()
{
void
outputsushu(int
k);
int
i;
for(i=100;i<=200;i++)
outputsushu(i);
}
void
outputsushu(int
k)
{
int
w=0,t;
for(t=2;t<=k/2;t++)
/*从2判断到k/2个数,你也可以判断到
根号
k个数,但要用到math.h
函数
*/
{
if(k%t==0)
w=w++;
/*通过
定义
一个
标记
,都不能整除,标记不变保持0值,整除了加1,判断最后有没有整除就可以*/
}
if(w==0)
printf("%d\t是素数\n",k);
else
printf("%d\t不是素数\n",k);
}
第3个回答  2011-11-19
# include<stdio.h>
# include<math.h>
int main()
{
int i,k,n=0;
for(i=101;i<=200;i+=2)
{
for(k=2;k<=sqrt(i*1.0);k++)
{
if(i%k==0)break;
}
if(k>sqrt(i*1.0))
{
printf("%d ",i);
n++;
}
if(n%10==0)
printf("\n");
}

return 0;
}
第4个回答  2011-11-10
#include<stdio.h>
#include<math.h>
int isprime(int n)
{
int i,k=0,m;
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)
k++;
if(!k)
return 1;
else
return 0;
}
void main()
{
int i,j=0;
for(i=100;i<200;i++)
if(isprime(i))
{printf("%5d",i);j++;
if(j%5==0)
printf("\n");}
printf("\n");
for(i=2;i<1000;i++)
if(isprime(i)&&isprime(i+2))
{printf("%5d",i);j++;
if(j%5==0)
printf("\n");}
printf("\n");
}

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之间的素数
return 0; \/\/ 如果存在除1和自身之外的因子,则返回0,不是素数 } } return 1; \/\/ 没有找到除1和自身之外的因子,返回1,是素数 } ```这个程序会遍历100到200之间的所有整数,并使用`is_prime`函数来检查每个数。如果一个数是素数,程序会将其打印出来。

C语言求100到200之间的所有素数,按每行6个输出?
int main() { int i, j;int count = 0; \/\/ 计数器,记录每行已经输出了多少个数 printf("100 到 200 之间的所有素数为:\\n");for (i = 100; i <= 200; ++i) { int is_prime = 1; \/\/ 标记当前数是否为素数 for (j = 2; j < i; ++j) { if (i % j == 0) { \/...

c语言 调用函数,输出100到200之间的所有素数
素数是只有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))return 0;return 1;}int main(int...

编写C语言程序,求100~200之间所有素数。
素数就是只能被1和本身整除的数,先定义一个函数用于判断一个数是否是素数,在从100到200依次循环判断,如果是素数则输出。参考代码:include<stdio.h>int fun(int n){\/\/判断n是否是素数int i;for(i=2;i<n;i++)if(n%i==0) return 0;return 1; } int main(){ int i; for(i=100;i...

C语言程序编程:输出100到200间的全部素数,每行输出5个素数。
1、打开VC2010后的界面。2、点击文件--->新建--->项目。点击 32位控制台应用程序 输入名称 3、以上完成后,再点左击C1后,右击源文件,——>添加——>新建项。4、再选择c++文件,文件名称,现在都可以写程序了。5、#define max 100 宏定义max=100。6、最后运行结果如下。

用C语言 求100到200之间的全部素数(每行输出10个)。 先谢谢了, 最好能...
k:中间变量,用于保存 'm+1的平方根';h:素数的计数,初始化为0;leap:是否合数,leap=0表示已经测试为合数*\/ printf("\\n");for(m=100;m<=200;m++)\/*从100循环到200逐个测试是否为素数*\/ { leap=1; \/*初始化标志变量leap为1,首先假定m是素数*\/ k=sqrt(m+1); \/*求得m+1的平方...

用c语言求出100到200之间的素数
p[1] = 1; \/\/当然,排除1,1不是素数 for(i=2;i<=sqrt(200);i++) if(!p[i]) \/\/如果是i素数 for(j=i+i;j<=200;j+=i) if(!p[j]) \/\/i的倍数全不是素数 p[j] = 1;for(i=101;i<=200;i++) if(!p[i]) \/\/p[i]不是素数 printf("%d\\n",i);} ...

用C语言求100-200之间的素数
错误原因:循环结束之后,没有把s重新置为1,所以在判断完第2个素数之后第一个非素数后就不再输出了。例子如下:直接编译,程序输出结果如下图所示:

用c语言编程将100~200之间的素数输出?
代码如下: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;} 结果如下:...

相似回答