问题是:
“创建一个程序,要求用户输入任何整数,然后向用户指示输入的数字是否为素数
或不。通过创建一个输入为C++
的{{1}}函数来完成此操作;通过计算因子的数量,如果输入为素数,则函数integer
为真,否则为假。“
这是我的代码(请指明方向而非准确答案):
return
谢谢!
答案 0 :(得分:3)
一种非常快速和简单的素性测试,它简单明了,但对于大素数不是很有效。
bool isPrime(int x){
if(x < 2) return false;
if(x == 2) return true;
if(x % 2 == 0) return false;
for(int i=3; (i*i) <= x; i+=2){
if(x % i == 0 ) return false;
}
return true;
}
参考:Determining if a number is prime
有很多方法可以询问用户输入整数,并报告是否为素数,但这是您正在寻找的主要方法。
答案 1 :(得分:0)
#include <iostream>
using namespace std;
bool isPrime(int x)
{
for(int i = 2; i <= x/2; i++)
if(x%i ==0)
return false;
return true;
}
int main()
{
int x;
cout<<"Enter a number: ";
cin>>x;
isPrime(x) ? cout<<x<<" is prime" : cout<<x<<" is not prime"<<endl;
return 0;
}