c++为什么答案不对,哪里错了

描述
把从某个数字开始起的10个素数存放在数组中,然后输出这10个素数的总和
输入
一个正整数n,表示n组案例。每组案例由一个正整数m组成。
输出
针对每组案例,输出一个整数,表示大于等于m的最小10个不同素数的和。
每组案例输出完都要换行。
样例输入
1
4
样例输出
192

#include <iostream>
#include<cmath>
using namespace std;
bool f(int a)
{
    if (a < 2)
        return false;
    for (int i = 2;i < sqrt(a);i++)
    {
        if (a % i == 0)
            return false;
    }
    return true;
}
int main()
{
    int n, m;
    int a[10];
    cin >> n;
    for (int i = 0;i < n;i++)
    {
        int x = 0;
        int sum = 0;
        cin >> m;
        for(int j=m;;j++)
        {
            if (x >= 10)
                break;
            else
            {
                if (f(j))
                {
                    a[x] = j;
                    x++;
                    sum = sum + a[x - 1];
                }

            }
        }
        cout << sum << endl;
    }
     return 0;
}