质数检查器?

Posted

技术标签:

【中文标题】质数检查器?【英文标题】:Prime number checker? 【发布时间】:2014-03-16 23:40:23 【问题描述】:

我正在尝试创建一个程序来检查给定数字(1 到 1000 之间)是否为素数,但遇到一两个问题。我下面的代码将运行,但由于第 14 行输出 1000 次 (for(int i = 3; i

#include<iostream>
using namespace std;

int main()
cout << "enter number of interest: ";
  int num;
    cin >> num;


const int ELEMENTS =1000;

bool multiples[ELEMENTS] = ;  

for(int i = 3; i <= ELEMENTS; i++)

  for(int j = 2; j <= i - 1; j++)
      multiples[i]=true;
    if(i % j == 0)
      multiples[j]=false;

    
  
  if((multiples[num] == true))
    cout << num << " is prime" << endl;
  
  else
  cout <<num<< " is not prime"<<endl;


return 0;

【问题讨论】:

记得用那个大勾号将答案标记为解决问题。 【参考方案1】:

将其移出for 循环。由于它使用的变量是在 for 循环范围之外定义的,所以它可以正常工作。

编辑:正确片段:

for(int i = 3; i <= ELEMENTS; i++)
  for(int j = 2; j <= i - 1; j++)
    multiples[i]=true;
    if(i % j == 0)
      multiples[j]=false;
    
  

if (multiples[num] == true) 
  cout << num << " is prime" << endl;

else
  cout << num << " is not prime" << endl;

【讨论】:

我应该从 for 循环中移出什么? @user3238772 带有打印语句的if-else 块。 我添加了固定样本 谢谢,问题解决了。但是,现在我输入编译器的大多数素数都说它们不是素数:/

以上是关于质数检查器?的主要内容,如果未能解决你的问题,请参考以下文章

scratch质数判断器 电子学会图形化编程scratch等级考试四级真题和答案解析2021-12

hihocoder 1287 : 数论一·Miller-Rabin质数测试 大质数判定

Java小白入门200例24之检查数字是否为质数

查找质数直到一个数字

找小于N 的所有质数

质数的多种实现方法