C++素数循环测试以错误的方式执行
C++ prime loop test executes in false manner
我目前正在接受一些挑战,并寻找一些东西来测试我在C++中的新能力,我决定主要做数学,在这种情况下是欧拉问题。下面是一些代码,可以找到给定数字的最大素数,但由于某种原因,它没有进入for循环,我甚至运行了cout << "Test" << endl;
,但它不会打印语句,为什么会这样?
#include <iostream>
#include <string>
using namespace std;
int ReturnPFactors(int number)
{
int Factor{};
int thisnum = number;
for (int x = 0; x < thisnum; x++)
{
cout << "Here" << endl;
}
return Factor;
}
bool isPrime(int n)
{
// Corner case
if (n <= 1)
return false;
// Check from 2 to n-1
for (int i = 2; i < n; i++)
if (n % i == 0)
return false;
return true;
}
int main()
{
//should be looking for 6857
int Number = 600851475143;
cout << ReturnPFactors(Number) << endl;
return 0;
}
如果你有任何问题,我会在接下来的30分钟左右(从这篇帖子(,在我睡觉之前回答。
600851475143
对于典型环境中的int
类型来说太大,它是32位长的,最多可以存储2147483647
。
二进制中的CCD_ 5是CCD_。
在典型环境中,它被截断为32位长:1110 0101 1000 1001 1110 1010 1100 0111
它的最高位是1
,因此在典型环境中被视为负数。
在此之前,i < thisnum
变为false,循环体将不会被执行。
您应该使用至少64位长的long long
和前缀为LL
(代表long long
(的600851475143LL
。
相关文章:
- 程序按执行方式工作,直到我向其添加析构函数为止
- 在服务器上执行操作的正确和 REST 方式?
- 在Visual C ++中与Stockfish(外部可执行文件)通信的最佳方式
- 在 Windows 命令行中运行.exe在使用 2 种相同方式执行时会产生不同的输出
- 无法以正确的方式执行其他程序
- 执行随机开关函数的QT方式是什么连续两次使用相同情况的方法
- 优雅地尝试以特定的方式执行各种功能
- 如果 QApplication 执行延迟,QWebEngineView 在加载内容时会以静默方式失败
- 为什么程序没有以正确的方式执行
- 如果与未使用的库链接,可执行文件的构建方式是否不同?
- pi的倍数到千分之一的值可能会改变循环执行方式
- 优雅的方式来执行许多闹钟
- 可执行文件在被复制时以某种方式损坏
- 使用 Linux Eclipse,我可以以编程方式判断我正在调试器 (gdb) 中执行
- 为什么 GNU ld 在链接可执行文件和共享对象时以不同的方式解析符号
- Visual Studio-在逐步执行时查看堆栈大小增长的方式
- 使用C++以编程方式执行静默安装
- 如何在没有弹出cmd窗口的情况下以c ++静默方式执行shell程序
- 给定一个期货容器,如何以非阻塞的方式执行所有获取
- 有没有办法在C++中以编程方式执行 adb 命令?这C++部分代码是使用 android Studio 中的 ndk b