说明是: 素数是一个只能被1和它自身整除的数字。对于此分配,您将找到从1到n(其中n是用户指定的数字)中的哪些数字是素数。 询问用户是否有大于1的数字。 使用循环迭代变量i,从2到n。对于每次迭代,检查从2到i的所有数字以确定该数字是否为素数。如果是素数,请打印出i和单词“Prime”。
这是我到目前为止所做的:
#include<iostream>
using namespace std;
int main()
{
int i;
int n;
cout << "Enter a number greater than 1" << endl;
cin >> n;
bool isPrime=true;
for(i=0; i<=n; i++)
{
if (n%i == 0)
isPrime=false;
}
if(isPrime == true)
cout << i << " is Prime!" << endl;
return 0;
}
答案 0 :(得分:3)
我不会用工作代码回答疑似的家庭作业问题,所以请改为使用这个伪代码:
main:
get number from stdin
loop from 2 to number:
if number isprime:
print number " is prime!"
increment number
exit
isprime:
loop from 2 to number - 1:
if loop counter evenly divides number
return false
return true
使用函数判断一个数字是否为素数,你会有更好的运气。以这种方式组织你的想法更容易,对未来的良好实践更容易,在那里你将解决组织你的想法将会更加困难的问题。
答案 1 :(得分:2)
您可以使用Sieve算法。查看here以获取算法描述。使用智能解决方案可能会获得额外的功劳;)
答案 2 :(得分:0)
bool isPrime(int number){
bool isPrime = true;
for(int i = 1; i <= sqrt(number); i++){
if(number%i == 0)isPrime = false;
}
return isPrime;
}