#include<stdio.h>//头文件
#include<math.h>//为了引入sqrt求平方根函数
int main()//主函数
{
int number,i;//定义变量
for(number=100;number<201;number++)//这个for循环主要是限制100-200之间
{
for(i=2;i<=sqrt(number);i++)
{
if(number%i==0)//如果余数为0
break;//跳出当前循环
}
if(number%i!=0)//如果求余不等于0,则为素数
printf("%d\n",number);//输出素数
}
return 0;//函数返回值为0
}
逻辑有问题,你的n没有归2,里面的while结束后n的值没有归2呀,下一次里面的while循环n的值,还是上一次结束加完的,所以总会有i==n,所以都会输出咯。修改后的代码和运行图已贴出来,记得采纳一下哦!
#include <stdio.h>
int main(){
int i = 100,n=2;
while(i<=200){
i++;
while(n<i){
n++;
if(i%n==0){
break;
}
}
if(i==n){
printf("%d\t",i);
}
n = 2; //n的值归2
}
}
有帮助的话采纳一下哦!
愣是让我调了一会儿
#include<stdio.h>
int main()
{
int i = 2;
int n = 2;
while (i <= 200) {
i++;
while (n < i)
{
if (i % n == 0)
{
break;
}
n++;
}
if (i == n)
{
printf("%d \t ", i);
}
n = 2;
}
return 0;
}