0

今日は面白い問題がありました。Objective-cに堪能な練習の一環として、数学のクラスに座っているときに、数学とプログラミングの能力を高めることを期待して、ボード上で行われた問題ごとにプログラムを作成します。

しかし、今日私は問題に遭遇しました。質問の1つは、「10564245(<-例の数)が割り切れる最大の素数を見つける」のようなものでした。

それで、私は入ってプログラムを作りました。チェックする値のループを実行し、リマインダーをチェックする部分のコーディングを開始しました。0の場合はログに記録し、そうでない場合はスキップします。

ただし、数が大きすぎてにできないためint、である必要がありましたdouble%数値を接続しようとすると、doubleで演算子を使用したいときに、プログラムでエラーが発生しました。数が非常に多い場合、余りを見つける方法はありますか?

ありがとう

エラー:Invalid operands to binary expression

編集:解決しました!

私はそれぞれの答えから少し取った。私たちはfmod機能を持っていますが、long代わりに使用することになりました。なぜ元々int考えなかったのかわかりません。

4

2 に答える 2

5

fmod()を使用します。

#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[]) {
    double a = 77879878978942312315687897;
    double b = 10;
    printf("%.f",fmod(a, b));
}
于 2012-04-20T15:17:40.597 に答える
1

整数値の場合、double値は正確ではないため、この種のことにはおそらく使用しないでください。代わりに、longintoまたはlonglongintを使用して計算を行うことができます

于 2012-04-20T15:22:40.427 に答える