前提
C言語である大きい数の最大の素因数を求めるプログラムを作成しています。その数は3233514234548132です。そこで以下のようなプログラムを作成したのですが、適当な数では正常に作動するものの、肝心の求めたい数になると一つ小さいものを出力してしまいます。
実現したいこと
その数は3233514234548132です。そこで以下のようなプログラムを作成したのですが、適当な数では正常に作動するものの、肝心の求めたい数になると一つ小さい127を出力してしまいます。
発生している問題・エラーメッセージ
一つ小さい素因数を出力してしまう
該当のソースコード
#include<stdio.h> int main(void){ unsigned long long m,Gmax=0,flag; int i; m=3233514234548132; flag=m; for(i=2;i<=flag;i++){ if(m%i==0){ Gmax=i; while((m%i)==0){ m/=i; } } } printf("%lld\n",Gmax); return 0; }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/12/06 23:43