2016-07-02 8 views
0

プロジェクトオイラー - 3 --- PROBLEMプロジェクトオイラー、#3の好奇心

私はプログラミングの当beginnnerと私はプロジェクトオイラーの問題を行うことを始めました。

私はC言語で3番目の問題を解決しようとしましたが、なぜ動作しないのかわかりません。

#include <stdio.h> 
    #include <stdlib.h> 
    int main() 
    { 
      int prime = 0; 
      long long number, factor, primeFactor = 0, i; 
      printf("\n\nNumber :"); 
      scanf("%lld", &number); 
      factor = number; 
      while (primeFactor == 0) { 
        factor --; 
        if (number % factor == 0) { 
          for (i = 2; i < factor; i++) { 
            if (factor % i == 0) { 
              prime = 0; 
            } 
          } 
          if (prime) { 
            primeFactor = factor; 
          } 
        prime = 0; 
        } 
      } 
      if (primeFactor == 0) { 
        printf("\nIt has no prime factors.\n\n"); 
      } 
      else printf("\n%lld\n", primeFactor); 
      return 0; 
    } 

誰かがなぜそれが機能しないのですか?

ありがとうございます! :)

+2

問題の文を質問で引用してください。だから、人々はGoogleでそのようなことをする必要はありません。次に、あなたのプログラムが出力するものと出力するべきものを教えてください。 – JJJ

+0

浮動小数点例外エラー –

+1

が発生しました。1) 'prime'は0に設定されません。 – BLUEPIXY

答えて

0

あなたは、BLUEPIXYを示唆したのと同様に、内部ループの間違ったのロジックを持っているあなたは、反対のことを実行する必要があります。

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
     int prime = 0; 
     long long number, factor, primeFactor = 0, i; 
     printf("\n\nNumber :"); 
     scanf("%lld", &number); 
     factor = number; 
     while (primeFactor == 0) { 
       factor--; 
       printf("%lld %lld\n",number,factor); 
       if (number % factor == 0) { 
         for (i = 2; i < factor; i++) { 
           if (factor % i == 0) { 
             prime = 1; 
           } 
         } 
         if (!prime) { 
           primeFactor = factor; 
         } 
       prime = 0; 
       } 
     } 
     if (primeFactor == 0) { 
       printf("\nIt has no prime factors.\n\n"); 
     } 
     else printf("\n%lld\n", primeFactor); 
     return 0; 
} 

はまた:1は素数ではありません、あなたも、それをチェックする必要があります。また、入力自体もチェックされません(ここでは1より大きい必要があります)。

デバッガの使い方を学んでください。いいえ、本当に、あなたが学ぶ言語のためにデバッガを使う方法を知っていることは、言語そのものを学ぶほど重要です。

関連する問題