从用户输入范围内输出质量数量
Outputting amount of prime numbers from a user input range
我在计算机科学学院课程中,并负责编写一个程序,以在用户指示的范围内输出质量数量。这是提示:
编写一个C 程序以询问用户并输入一个开始值和一个 一系列整数的最终价值。计数并输出数量 该范围内的质数(包括端点)。例如,如果 用户输入2和10,排名应该是:"有4个Prime 在给定范围内的数字。"请勿输出质数本身 在最后提交中。请勿在代码中使用Break语句。
复制并将输出粘贴到代码底部的评论。 将您的名字写入输出。除了main()是 必要。
测试数据:50至100。
我已经在网上搜索了潜在的解决方案,但仍然无法围绕如何使用限制编写此程序。这是限制:
- 我不能使用break语句
- 我不能使用函数
我班级的最新概念是循环(适用于,等等),所以我不能使用数组或任何类似的东西。
我已经在线修改了一个代码以适合提示,但它使用了休息:
#include <iostream>
using namespace std;
int main ()
{
int min, max, i, primeNumbers;
cout << "Enter a minimum integer: " ;
cin >> min;
cout << "Enter a maximum integer: " ;
cin >> max;
primeNumbers = 0;
for (i=min; i <= max; i++)
for (int j=2; j<i; j++)
{
if (i % j == 0)
break;
else if (i == j+1){
primeNumbers++;
}
}
cout << "There are " << primeNumbers << " prime numbers" << endl;
return 0;
}
输出:
Enter a minimum integer: 50
Enter a maximum integer: 100
There are 10 prime numbers
使用标志跟踪是否找到任何因素。
for (i=min; i <= max; i++)
{
bool hasFactor = false;
for (int j=2; j<i; j++)
{
if (i % j == 0)
hasFactor = true;
if (i == j+1 && !hasFactor)
primeNumbers++;
}
}
然后,您可以将第二个if
移到内部循环外。
for (i=min; i <= max; i++)
{
bool hasFactor = false;
for (int j=2; j<i; j++)
{
if (i % j == 0)
hasFactor = true;
}
if (!hasFactor)
primeNumbers++;
}
您也可以通过在hasFactor
设置后立即停止内部循环来优化它,从而模拟break
语句而无需实际使用。
for (i=min; i <= max; i++)
{
bool hasFactor = false;
for (int j=2; j<i && !hasFactor; j++)
{
if (i % j == 0)
hasFactor = true;
}
if (!hasFactor)
primeNumbers++;
}
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词