0

コードに問題があり、何が原因かわかりません。GCC は警告なしでコンパイルしますが、実行しても何も出力されません。

私はちょうど c を学んでいます (これは実際にはオイラーの問題 3 です。600851475143 の最大の素因数を見つけてください)。

このコードの何が問題になっていますか?

#include <stdio.h>

int primeCheck(unsigned long input);

int main(){
  //goal: find largest prime factor of 600851475143
  unsigned long goal = 600851475143;
  for(unsigned long i = 600851475142; i > 0; i--){
    if(primeCheck(i) == 1 && goal%i == 0)
      printf("\n%lu\n\n", i);
  }

}

int primeCheck(unsigned long input){
  for(unsigned long i = 2; i < input; i++){
    if(input%i == 0)
      return 0;
  }
  return 1;
}
4

3 に答える 3

0

プログラムの実行に時間がかかりすぎている可能性があります。Jerry がプログラムを検証するためにほのめかしたように、より小さな数を試してみてください。

この投稿を見たいと思うかもしれません:より良いアルゴリズムのための大きな数の素因数分解。

于 2013-11-06T02:05:19.757 に答える