质数检查器?
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