c++ - 我怎样才能找到质数?
问题描述
如何以简单的方式在 C++ 中的一维数组中找到素数?
{
int list[5];
int i,sum = 0;
for (i = 0; i < 5; i++)
{
cout << "Enter The List [" << i << "]: "; cin >> list[i];
sum = sum + list[i];
}
cout << endl;
cout << "The Sum Is:" << sum << endl;
}
解决方案
强调@john 的评论:
创建一个函数(比如bool is_prime(int n)
)。现在检查数字 n 是否为素数。
n
因此,您需要检查每个正整数在除法之前是否大于 1,n
而不会留下任何余数。有一个更短的解决方法,这将大大降低计算成本。只需检查直到数字的平方根n
就可以了。因此sqrt()
使用该功能。所以现在,我们的is_prime()
函数很容易构建,如您所见:
bool is_prime(int n)
{
int i,p=0;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
p=1;
break; //even if one integer divides the number, then it is composite.
}
}
if(p==1)
return false; //The number is a composite.
else
return true; //The number is a prime.
}
现在,您只需将数组的每个值都传递给此函数,您的工作就完成了。
此外,如果您检查1的特殊情况,它既不是合数也不是素数,这个程序可以做得更好。一个建议是,检查您的数组元素是否为1。如果不是,则在函数中传递值,否则只打印它是1。
注意:该sqrt()
函数在 C++ 库中可用,cmath
因此您也需要将其包含在程序中。
推荐阅读
- mysql - 遍历 MySQL 表中的列
- python - ImportError:libGL.so.1:无法打开共享对象文件:没有这样的文件或目录 Heroku
- javascript - 当 prop 设置为 true 时继续运行功能?
- c# - 如何在不创建方法的情况下检查单词中的 IsLetter
- python - 如何使用函数在 Python 中进行过滤?
- debugging - 英特尔的 oneapi C 编译器不生成调试信息
- c++ - 动态创建类型别名
- python - subprocess.Popen() 的每个实例都有自己的外壳吗?
- javascript - React Material UI Slider禁用颜色不更新
- splunk - 使用 Azure 事件中心设置 Splunk 时出现“提供了无效的客户端密码”错误