输出100以内的质数,用c语言编写

用循环结构,不要用数组,函数,用最简单的方式

#include<stdio.h>


int main()

{

int i,j;

int count=0;


for(i=2;i<100;i++)

{

for(j=2;j<=i/2;j++)

if(i%j==0)//如果i能被j整除  就不是质数  退出循环

break;

if(j>i/2)

{

count++;

printf("%-3d",i);

if(count%5==0)//当每一行有5个数时  换行

printf("\n");

}

}

return 0;

}

for(j=2;j<=i/2;j++)中的 j<=i/2是表示  从j=2开始遍历到j=i/2  看看2~i/2中能否整除i

如果都不能  说明i是质数(也就是j>i/2)

如果有1个及以上能整除i  说明i不是质数


for()

{

}

//for循环结束之后  j的值是大于i/2的  因为for循环的条件是:j<=i/2

//因此  当j>i/2时  for循环结束

if(j>i/2)

这里当且仅当2~i/2都不能整除i时   也就是j>i/2  才说明i是质数

参考资料

输出100以内的质数,用c语言如何编写?.百度知道[引用时间2017-12-25]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-27

#include <stdio.h>

int main(int argc, char **argv)

{

int x;

for (x=1;x<100;x++){

int i;

int isprime=1;//表示x是素数

for(i=2;i<x;i++){

if (x%i==0){

isprime=0;

break;

}

}

if (isprime==1){

printf("%d",x);

}

}

return 0;

}

C语言编程计算注意事项:

1、编程时注意符号大小写。

2、main函数要有返回值

3、C语言中定义数组,要定义出大小,数组的大小只能是常量不能是变量。

4、%md ; %0md ;%.mf;(以m位进行右对齐输出,不足m位空格补上;以m位进行右对齐输出。不足m位用0补上;保留m位小数)

本回答被网友采纳
第2个回答  推荐于2017-12-16
楼主你好
用最简单的方式编写的:
#include<stdio.h>

int main()
{
int i,j;
int count=0;

for(i=2;i<100;i++)
{
for(j=2;j<=i/2;j++)
if(i%j==0)//如果i能被j整除 就不是质数 退出循环
break;
if(j>i/2)
{
count++;
printf("%-3d",i);
if(count%5==0)//当每一行有5个数时 换行
printf("\n");
}
}
return 0;
}

希望能帮助你哈追问

if(j>i/2)

和j<=i/2 是什么意思呢

追答

for(j=2;ji/2)
如果有1个及以上能整除i 说明i不是质数

for()
{
}
//for循环结束之后 j的值是大于i/2的 因为for循环的条件是:ji/2时 for循环结束
if(j>i/2)
这里当且仅当2~i/2都不能整除i时 也就是j>i/2 才说明i是质数

本回答被提问者和网友采纳
第3个回答  2012-10-21
#include <stdio.h>
int main()
{
int i,j;
for(i=2;i<=100;i++)
{
for(j=2;j*j<=i;j++)
if(!(i%j))
break;
if(i%j)
printf("%d\n",i);
}
return 0;
}
第4个回答  2020-07-11
#include <stdio.h>
void main ()
{
int i,j;
for (i =0;i <=100;i ++)
{
for (j=2;j<=i;j++)
{
if (i %j ==0&&i ==j)
{
printf (“%d \n”,i );
}
}
}
}
相似回答