如何克服运行时错误信号:25?等效地,浮点错误:核心转储
how to overcome runtime error signal:25? equivalently, floating point error: core dumped?
所以我做了这个函数来打印区间 L,U 之间的大素数:
1.此功能对于少量数字可以正常运行。
2.当我尝试打印两个大数字之间的素数(例如,100000000和100100000)时,
在 IDEONE.com 上,它说:运行时错误信号:25
在Linux(使用终端)上,它说:浮点异常(核心转储)
在从小数字到大数字的翻译过程中可能出了什么问题?
//primes[] stores all the primes between 2 and sqrt(1000000000)
void check(long long L,long long U,long long primes[])
{
long long g=0,i=0,d;
if(L==1)
L++;
long long v=sqrt(1000000000);
for(long long k=L;k<U+1;k++)
{
i=0;
d=sqrt(k);
while(i<=v) //this statement...
{
if(primes[i]<=d)
{
if(k%primes[i]==0)
{g=1;break;}
++i;
}
else
break;
}
if(g==0)
{
cout<<k<<endl;
}
g=0;
}
return;
}
编辑:我通过从我的计算中删除素数[](检查注释)中未使用的间隔来解决问题。这可能会使计算次数减少很多(标记的 while 语句中的计算减少了 10 倍)。感谢所有回应的人。
检查签名
double sqrt(double x)
它可以取的最大值是多少。
相关文章:
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 浮点异常(核心转储)#694457
- 分段错误(核心转储)但无法弄清楚
- 链接到libkcapi时没有核心转储
- 检测到堆栈粉碎:已终止 中止(核心已转储)
- 分段错误(核心转储) - 使用 SavedModel 的 Tensorflow C++ API 进行推断
- 我不知道为什么这段代码会让核心被转储?
- 在基数排序中,我得到 munmap_chunk():无效指针和中止(核心转储).为什么?
- 访问std::list元素将转储核心
- 使用SIGSEGV或SIGABRT信号转储核心并终止进程
- Eclipse (C++) 崩溃 无法写入核心转储.核心转储已被禁用
- 已终止(转储核心)
- 转储核心时拍摄堆快照的时间
- 读取字符串时转储核心
- 当main函数返回时转储核心
- 是否可以转储核心但不退出进程
- 在尝试libssh身份验证时转储核心