程序为某些条目提供了错误的输出!怎么了?
program gives me wrong output for some entries! What's wrong?
所以这里有代码:
#include <iostream>
using namespace std;
bool prime(int);
int main()
{
int x;
cout<<"Enter your number: ";
cin>>x;
if(prime(x) == true)
cout<<"Number is prime";
if(prime(x) == false)
cout<<"Number is not prime";
return 0;
}
bool prime(int number)
{
for(int i=2; i<number;i++)
{
if(number%i==0)
return false;
if(number%i!=0)
return true;
}
}
该程序适用于所有素数(至少适用于我尝试过的那些!)但对于一些复合物,它说:数字不是素数!我在哪里犯了错误?
prime
函数应如下
bool prime(int number)
{
for(int i=2; i*i<number;i++) //Only till square root is enough.
{
//For any number which is divisible, return false.
if(number%i==0)
return false;
}
//Else, divisible by no one is prime.
return true;
}
在这部分使用else。
if(prime(x) == true)
cout<<"Number is prime";
else
cout<<"Number is not prime";
无需对同一函数调用两次。
复合物不是素数,所有非素数都会发出"Number is not Prime"
但你需要修改你的代码:
bool prime(int number)
{
for(int i=2; i<number;i++)
{
if(number%i==0)
return false;
}
return true;
}
您只能在所有非素数测试失败后判断数字是否为素数
相关文章:
- 显示错误输出的简单数组排序程序
- Dijkstra 中的错误输出
- 自定义runtime_error,如果我在 #what 中使用#c_str(),则错误输出始终为空
- 流字符串错误输出
- C++ 异常处理错误输出
- C ++中的错误输出,i = 65530,当我们打印i的值时,它给出-6状态65530
- SSE和iostream:浮点类型的错误输出
- C++将 popen 错误输出读取为字符串
- 部分透视/高斯消除 - 交换列而不是产生错误输出的行
- C++,向量:获得包含 0 的错误输出
- 数组函数错误输出
- CC1plus 错误:输出文件名指定两次
- 字符串错误输出
- 子斯特的错误输出
- 对大量c++错误输出完全一无所知.我认为这与预定义的函数和迭代器有关
- 简单程序的错误输出
- XCode调试器lldb中断,没有错误输出,但程序运行良好
- std::string::append(std::string)错误输出
- 查看大错误输出的顶行
- 使用结构的错误输出