我正在尝试从文件列表中读取随机数量的数字。从这些数字中,我需要确定数字本身是否为素数,然后需要将所有素数相加以获得总和。

我的这段代码有问题。我对如何获得ARE素数并将其存储起来感到迷lost,因此我可以将它们加在一起以获得它们的累加和。我认为这部分代码会放在我的else if块中,但我不确定100%。有人可以指出正确的方向和/或给我一个例子吗?如果我想获得其平均值,是否可以用类似的方式获得其总和?

另外,从列表中提取了多个值,因此,如果我使用单个变量表示质数,则变量会在每次整个循环迭代时将自身重置为找到的下一个质数吗?

bool primeCalc()
{
    int number;
    bool primeValue = true;
    int i;
    while (inputFile >> number)
    {
        for (i = 2; i <= number / 2; ++i)
        {
            if (number % i == 0)
            {
                primeValue = false;
                break;
            }
            else if (number % i > 0)
            {
                // some code to store number value for sum;

            }
        }
}

最佳答案

为什么要存放它们并浪费空间?当它们来自流时,请执行以下操作:

int sum = 0;
while(inputFile >> number)
{
  if(isPrime(number))
    sum += (number);
}


其中isPrime可能是此原型的功能:bool isPrime(int number);,如果true是质数,则返回number,否则返回false。

09-10 05:32
查看更多