我必须编写一个程序来计算在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;
}
答案 0 :(得分:2)
您可能需要在编译器中打开警告。函数f返回bool(不是声明的int),除非x的除数的数量等于2,否则不会这样做。这是一个相当微不足道的错误,任何体面的C ++编译器都应该警告你。不要忽视警告。