gpt4 book ai didi

c++ - 在 C++ 中的序列中添加素数

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:23 26 4
gpt4 key购买 nike

考虑一个 n 正整数序列,其中 nn 数字在标准输入中输入,计算 那些是质数的数字。

我该怎么做?我尝试了以下代码但失败了:

#include <iostream>
using namespace std;
int main()
{
int n, i, j, numero = 0, primo = 0, soma = 0;
cout << "Digite um numero: ";
cin >> n;
for (i = 0; i < n; i++)
{
cin >> numero;
for (j = 1; j < n; j++)
cout << " numero " << numero << endl;
{
if (numero %j == 0)
primo ++;
cout << "primo" << primo << endl;
}
if (primo == 2)
{
soma = soma + numero;
cout << " numero " << numero << endl;
cout << "soma" << soma << endl;
}
}
cout << soma << endl;
return 0;
}

最佳答案

这是一个非常低效的素性测试。但问题是:

   for (j = 1; j < n; j++)
cout << " numero " << numero << endl;
{
if (numero %j == 0)
primo ++;
cout << "primo" << primo << endl;
}

首先,cout 需要在大括号之间。目前 for 循环只重复 cout,而不是 block 。

    for (j = 1; j < n; j++)
{
cout << " numero " << numero << endl;
if (numero % j == 0)
primo++;
cout << "primo" << primo << endl;
}

接下来,numero的因子落在1numero之间<​​strong>包含,而不是1n 互斥。所以for循环的退出条件是错误的。应该是:

    for (j = 1; j <= numero; j++)

并且,对于每个新数字,您必须将因子计数设置回零:

    for (primo = 0, j = 1; j <= numero; j++)

现在可以了:http://ideone.com/FL4Ms

关于c++ - 在 C++ 中的序列中添加素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8875105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com