c语言求100-200之间的素数

以下是我自己编的程序,求大神帮我纠错,万分感激!!(我看了网上的其他答案,都是引入了第三个变量,可不可只用两个变量就做出来呢?)
#include<stdio.h>
main()
{
int i,j;
for(i=100;i<=200;i++)
{for(j=2;j<i;j++)
{if (i%j==0) break;
printf("%d\n",i);}}
}

思路:先定义一个函数isp用来判断一个数是否是素数,所谓素数是除了1和自身没有其他的因数,所以从2到该数减一,判断其是否可以整除该数,如果可以该数就不是素数,否则该数就是素数。最后从100到200依次判断并输出素数。

参考代码:

#include <stdio.h>
int fun(int 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个回答  2012-08-25
原程序:
#include<stdio.h>
main()
{
int i,j;
for(i=100;i<=200;i++)
{
for(j=2;j<i;j++)
{
if (i%j==0) break;
printf("%d\n",i); //若没有因数,把从2到i-1的数输出一遍
}
}
}

————————————————————————————————
修改:
#include<stdio.h>
main()
{
int i,j;
for (i=100;i<=200;i++)
{
for (j=2;j<i;)
{
if (i%j==0)
break;
j++;
}
if (j=i)
printf("%d\n",i);
}
}
这样应该可以,但效率算不上很高
第2个回答  2020-11-25
#include <stdio.h>
int main()
{
int i,j;
for(i=100;i<=200;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0) break;
}
if(j>=i)
printf("%d\n",i);
}
return 0;
}
第3个回答  推荐于2017-09-21
void main()
{
int i,j;
for(i=100;i<=200;i++)
{
for(j=2;j<i;j++)
{
if (i%j==0)
break;

}
if(i==j)
printf("%d\n",i);
}
}追问

做的对哦~
可是我不理解为什么最后一个if里的是i==j而不是j<i?
麻烦大神再给解释下~

追答

i==j就说明前面的循环到最后都没有找到可被i整除的数,说明i是素数,输出i,如果j<i说明i找到一个可以整除的数,所以执行break语句,提前跳出循环

本回答被提问者采纳
第4个回答  2019-12-23
c语言求100至200之间的素数,这个真不太清楚,这个具体的他们之间的素数有哪些数字?
相似回答