[解決済み】浮動小数点例外エラーが発生する: 8
2022-01-22 15:05:07
質問内容
なぜg++は私のコードを好まないのか、全く分かりません。javaではうまく動いたのに。どんな洞察でも非常に感謝されます。
#include<iostream>
using namespace std;
bool isPrime(long number);
int main(){
const long number = 600851475143;
long max = 0;
for(long i= 0; i*i <= number; i++)
if(number % i == 0 && isPrime(i))
max = i;
cout<< max << endl;
return 0;
}
bool isPrime(long number){
if(number <= 1) return false;
if(number == 2) return true;
if(number % 2 == 0) return false;
for(long i= 3; i*i <= number; i+=2)
if(number % i == 0)
return false;
return true;
}
解決方法は?
const long number = 600851475143;
オーバーフローが発生している、longはその大きな数を保持できない。
見る このリンク
LONG_MAX is 2147483647
を試してみてください。
const unsigned long long number = 600851475143;
unsigned long longmax = 0;
編集する
0に対して%できない。
i
からスタートします。
0
for(long i= 0; i*i <= number; i++)
^^
{
if(number % i == 0 && isPrime(i))
^^^
{
max = i;
cout<< max << endl;
}
}
動作するバージョンへのマイナーチェンジ。
bool isPrime(unsigned long long number);
int main(){
const unsigned long long number = 600851475143;
unsigned long long max = 0;
for(long i = 1; i*i <= number; i++)
{
if(number % i == 0 && isPrime(i))
{
max = i;
cout<< max << endl;
}
}
return 0;
}
bool isPrime(unsigned long long number)
{
if(number <= 1) return false;
if(number == 2) return true;
if(number % 2 == 0) return false;
for(unsigned long long i= 3; i*i <= number; i+=2)
{
if(number % i == 0)
{
return false;
}
}
return true;
}
関連
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる