gpt4 book ai didi

c++ - 质数赋值基础c++

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:22 25 4
gpt4 key购买 nike

这是我的作业:质数是大于 1 且只能被 1 和它本身整除的数。对于此作业,您将找到从 2 到 n(其中 n 是用户指定的数字)的哪些数字是素数。

向用户询问一个大于 2 的数字 n。不断询问一个数字,直到提供了一个大于 2 的数字。假设用户只会输入数字(也就是说,您不需要检查用户是否输入了文本)。

使用循环迭代变量 i,从 2 到 n。对于每次迭代,检查从 2 到 i 的所有数字以确定该数字是否为质数。如果是素数,则打印出 i 和单词“Prime”。

使用取模运算符 % 来判断一个数是否为素数

这是我目前所拥有的。它不起作用。我不知道为什么。请帮忙,我是一名选修基础编程的商科学生。

#include <iostream>

using namespace std;

int main()
{
int n;
int i;
int x;

while (n<=2)
{
cout << "Enter a number greater then 2: \n";
cin >> n;

for (x=n; x>=2; x--)
{
bool prime = false;
for (i=2; i<x; i++)
{
if (x%i==0)
{
prime = true;
}
}
if (prime==false)
{
cout << x << " Prime.\n";
}
}
}
return 0;
}

最佳答案

我实际上并没有使用你的代码,因为它有点难读。但是我为你写了一个新方法。我建议始终将您的代码划分为多个方法,以使其更易于管理。你可以在你的主要方法中调用它

bool checkPrime(int number)
{ // input: num an integer > 1
// Returns: true if num is prime
// false otherwise.

int i;

for (i=2; i<number; i++)
{
if (number % i == 0)
{
return false;
}
}

return true;
}

下面是如何在主函数中调用这个方法:

主要内容(){

int number;

cout << "Enter an integer (>1): ";
cin >> number;

if (checkPrime(number))
{
cout << number << " is prime." << endl;
}
else
{
cout << number << " is not prime." << endl;
}

// I think this is more convention than anything.
return 0;

关于c++ - 质数赋值基础c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19375048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com