c++ - 进程以状态 -1073741510 终止 - C++ 素数分解
问题描述
我正在编写一个数字的素数分解代码,但我无法运行我的程序,遇到进程终止状态为 -1073741510我是计算机科学的新手。请在下面找到我的代码:
PrimeFactorize 函数
int primeFactorize(int n) {
if (isPrime(n)) {
cout<<n;
}
for(int i = 2; i < sqrt(n); i++) {
if(!isPrime(i))
continue;
while(n % i == 0) {
cout<<i;
n /= i;
}
}
}
isPrime 方法
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for(int i = 2; i <= sqrt(n); i++) {
if (n % i == 0)
return false;
}
return true;
}
主要方法
int main() {
cout<<primeFactorize(100);
return 0;
}
解决方案
你的功能
int primeFactorize(int n);
什么都不返回。因此这个说法
cout<<primeFactorize(100);
调用未定义的行为。
您应该通过以下方式更改函数声明
std::vector<int> primeFactorize(int n);
在函数中,而不是输出素数除数,您应该在向量中传递它们。例如
for(int i = 2; i < sqrt(n); i++) {
if( isPrime(i)) {
while(n % i == 0) {
v.push_back( i );
n /= i;
}
}
}
并且函数必须返回向量。
在 main 中,您可以输出获得的向量。
推荐阅读
- flutter - Dart 的 DateTime.fromMillisecondsSinceEpoch 函数为任何时间戳值返回相同的错误值
- veins - 如何让车辆在相扑中发生碰撞?
- javascript - target.attr 不是函数,长度未定义 jquery onclick
- php - 用户登录时如何将主页重定向到另一个页面
- jetbrains-ide - 更改范围线颜色 IDEA
- forms - 将字段集中的一个元素分组是否是可访问性问题?
- cytoscape.js - 如何在 cytoscape.js 中获取折叠节点
- mqtt - mqtt js 在订阅时获取频道值
- c - 从类型'struct Node *'分配给类型'struct Node'时的C不兼容类型
- mysql - 我想显示姓名和地址栏,以及姓名为 Ahmad 且出生于 1995 年 1 月 5 日之前的人?