需要帮助修复素数程序
Need help in fixing prime numbers program
我是C++的新手,我正在尝试制作一个列出素数的控制台程序。我在获得预期结果时遇到问题,因为它在显示后停止
2 is a prime number
这是错误的,并且列表不完整。请检查我的代码并帮助我修复它。
#include<iostream>
using namespace std;
int main()
{
int num,divi,count=0;
for(num=0;num<10;num++)
{
for(divi=1;divi<=num;divi++)
{
if(num%divi==0)
{
count++;
}
if(count==2){
cout<<num<<"is a prime number"<<endl;
}
}
}
}
每次检查新数字时,都必须初始化计数。第二个if语句必须放置在内部循环之外。例如
for(num=0;num<10;num++)
{
count = 0;
for(divi=1;divi<=num;divi++)
{
if(num%divi==0){count++;}
}
if(count==2){cout<<num<<"is a prime number"<<endl;}
}
考虑到2是一个素数。
此外,在不使用变量的声明性区域中声明变量也不是一个好主意。我会像一样编写程序
#include <iostream>
int main()
{
const int N = 10;
for ( int num = 0; num < N; num++ )
{
int count = 0;
for ( int div = 1; div <= num; div++ )
{
count += num % div == 0;
}
if ( count == 2 ) std::cout << num << " is a prime number" << std::endl;
}
return 0;
}
或者代替
count += num % div == 0;
你可以像你原来的程序一样写
if ( num % div == 0 ) ++count;
您需要在外部for循环的每次迭代开始时将count重置为0。你不妨先在那里宣布计数。
您在第一次检查后未能重置count
,因此当您检查数字3 时,它从2
开始
您应该重置每次迭代的计数:
for(num=0;num<10;num++)
{
count = 0;
... // Rest of the code here
}
相关文章:
- C++调用具有 *this 属性的单个帮助程序函数
- 用于检查值是否为其任何参数的帮助程序函数
- 类型限定宏帮助程序
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- 编写一个程序,帮助Tudio将MIDI音符转换为名称和八度音阶
- cout 在我的程序上无法正常工作,有人可以帮助我吗?
- 无法将 2D 数组传递到 c++ 中的帮助程序函数中
- C2783: 无法推断帮助程序函数的模板参数
- 需要循环帮助以迭代方式添加到程序集中的总和变量
- 友元函数需要一个帮助程序函数
- 在何处放置与类方法相关的帮助程序函数C++
- 给定概念,SFINAE 帮助程序是否仍在规范中作为未弃用?
- 需要帮助编写一个小程序来将循环乘以 n 个元素和 k 个多重性
- C 注册并登录程序帮助
- 自动售货机程序(帮助)
- 商数程序帮助我
- 第一个C++程序帮助(计算器)
- 简单的程序帮助-发送动态内存指针到函数
- 井字游戏程序帮助
- c++程序帮助:结构体,数组,循环,输入文件,循环不工作