-6

我必须编写一个程序来计算 2 和“n”之间有多少质数。

第一个输入必须是测试总数,其他输入必须是“n”(要检查的数字范围的数量限制)。

问题:

我的输入:7 10 15 50 100 1000 10000 7

上述输入的正确输出:4 6 15 25 168 1229 4

我的代码输出:4 6 15 25 800 9800 4

我的代码:

#include <iostream>

using namespace std;

int f(int number){
    int m=0,k=1;
    for(k; k<=number; k++)
        if(number%k==0)
            m++;
    if(m==2)
        return true;
}  

    int main (){
    int limit=0, counter=0, test=0;
    bool n;
    cin>>test;
    for(int v=0; v<test; v++){
        cin>>limit;
        for(int i=2; i<=limit; i++){
            n=f(i);
            if (n==true)
                counter++;
        }
        cout<<counter<<endl;
        counter=0;
    }
    return 0;
}
4

1 回答 1

2

您可能需要在编译器中打开警告。函数 f 返回一个 bool (不是声明的 int )并且不这样做,除非 x 的除数等于二。这是任何体面的 C++ 编译器都应该警告您的相当微不足道的错误。不要忽视警告。

于 2013-05-12T17:09:59.533 回答