有人能帮我写这个简单的素数程序吗?我做不好

Can anyone help me write this simple prime number program, i cant get it right

本文关键字:程序 简单      更新时间:2023-10-16

可能重复:
用于检查素数是否不起作用的C++代码

说明如下:素数是一个只能被1和它自己整除的数。对于这个赋值,你会发现从1到n(其中n是用户指定的数字)中的哪些数字是素数。请用户输入一个大于1的数字n。使用循环对变量i进行从2到n的迭代。对于每次迭代,检查从2到i的所有数字,以确定该数字是否为素数。如果是素数,打印出i和单词"素数"。

这就是我目前所拥有的:

 #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;
  }

我不会用工作代码回答一个可疑的家庭作业问题,所以用这个伪代码:

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

你最好用函数来判断一个数字是否是素数。用这种方式组织你的想法更容易,而且对未来来说是一个很好的实践,在那里你将解决那些组织你的思想将更加困难的问题。

以下是功能概述。

您可以使用筛选算法。请在此处查看算法描述。使用智能解决方案可能会获得额外的积分;)

 bool isPrime(int number){
    bool isPrime = true;
    for(int i = 1; i <= sqrt(number); i++){
        if(number%i == 0)isPrime =  false;
   }
return isPrime;
}