编程输出1~1000中所有个位数是7的素数,统计其个数,并求满足该条件数的和,输出结果

img

img

img


正确的是46 22472

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;
}

如有帮助,望采纳!谢谢!

哪错了