#include
int main()
{
int sum = 0;//记录要输出的数字;
int prime = 0; //记录素数的个数
int start;
int end;
int digital = 1; //错误1 这里的digital=1才对,因为如果是0 的话,你判断素数的逻辑会认为1也是素数,这样就错了
int isprime ; //错误2,这个要在do while循环里面设置为1
scanf("%d %d", &start, &end);
do
{
isprime = 1; //错误3,isprime=1要在这里设置
digital++; //引入数字;
for (int i = 2; i {
if (digital%i == 0)
{
isprime = 0;
break;
}
}
if (isprime == 1) //如果是素数的话
{
prime++; //记录下是第几个素数
if (prime >= start&&prime<=end) //错误4,prime要<=end少了等号
{
sum += digital;//把这个数字加到结果上;
}
else if (prime > end)//判断是否循环完成 //错误5,只有当prime大于end的时候才跳出循环
{
printf("%d", sum);//出口;
goto out; //退出循环;
}
}
} while (prime <= end);
out:
return 0;
}