【问题标题】:A program that counts how many prime numbers are between 2 and a given number计算 2 和给定数之间有多少质数的程序
【发布时间】:2018-02-26 12:34:30
【问题描述】:

我刚刚在大学参加了一场考试 其中一个问题是编写一个函数来计算在 2 和用户的给定数字(包括数字)之间有多少质数。 我编写了这个对我有用的算法,但他们仍然扣除了问题的所有要点,就好像它完全错误一样。 有人可以告诉我代码有什么问题吗? 非常感谢。

#include <iostream>
using namespace std;

void main()
{
    int count = 0;
    int num;
    cout << "Please enter a natural number " << endl;
    cin >> num;

    for (int i = 2; i <= num; i++)
    {
        if ((i == 2 || i == 3 || i == 5||i == 7) || (i % 3 != 0 & i % 5 != 0 & i % 7 != 0 & i % 2 != 0))
            count++;
    }
    cout << "There are " << count << " prime numbers beteween 2 amd " << num << endl;
}

【问题讨论】:

标签: primes


【解决方案1】:

您的代码仅检查数字是否是 2、3、5 或 7 的倍数。这会丢失很多倍数,这意味着您的代码可能会给出许多误报。

该条件也很难阅读,因此您可能也会因此而失分。

如果用另一个 for 循环替换循环中的那个条件,并检查从 3 到测试数平方根的每个奇数,会好得多。

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多