2个错误,在下面的代码里标明了,如有帮助,请帮忙采纳一下,谢谢。
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int i,j,k;
int n = 0;
int sum = 0;
for (i=7;i<=1000;i++)
{
k = sqrt((double)i);
for (j=2;j<=k;j++) //修改1:这里是j<= k
{
if(i%j == 0) break;
if(j>=k && (i-7)%10==0 )
{ //修改2:下面几行代码需要用{}包裹起来
//cout << i;
sum += i;
n++;
}
}
}
cout << n<<endl;
cout << sum <<endl;
return 0;
}
1是。内循环中j < k 不对,应该是 j <= k
2是,判断个位数是7 应该在内循环结束之后进行
你题目的解答代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,j,k;
int n = 0;
int sum = 0;
for (i = 7; i <= 1000; i++)
{
k = sqrt(i);
for (j = 2; j <= k; j++)
{
if (i%j==0)
break;
}
if (j>k && i%10==7)
{
cout << i << " ";
n++;
sum += i;
}
}
cout << endl;
cout << n << endl;
cout << sum << endl;
return 0;
}
如有帮助,望采纳!谢谢!
哪错了