C++ 代码错误(查找1到100之间的素数)

C++ 代码错误(查找1到100之间的素数),c++,C++,我认为它是对的,但它找不到素数。我不知道它有什么错误 #include<iostream> #include<cmath> using namespace std; int main() { int i, j, n, a[101]; for (i = 1; i <= 100; i++) a[i] = i; a[1] = 0; for (i = 2; i < sqrt(100); i++); for (j

我认为它是对的,但它找不到素数。我不知道它有什么错误

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int i, j, n, a[101];
    for (i = 1; i <= 100; i++)
        a[i] = i;
    a[1] = 0;
    for (i = 2; i < sqrt(100); i++);
    for (j = i + 1; j <= 100; j++)
    {
        if (a[i] != 0 && a[j] != 0)
            if (a[j] % a[i] == 0)
                a[j] = 0;
    }
    cout << endl;
    for (i = 1; i <= 100; i++)
    {
        if (a[i] != 0)cout << a[i] << " ";
    }
    cout << endl;
    system("pause");
}
它输出从2到99的所有数字,而不是素数,因为外部for循环没有主体

对于i=2;i
去掉分号。始终使用大括号标记循环的边界,即使循环体只是一条语句。

您输入的i=2;i如果删除该字符;它可以很好地运行。

看到第二个for循环后面的分号了吗?对于i=2;i