-2

何が間違っていたのかわかりません。構文エラーはありませんが、必要な答えが得られません。このアルゴリズムは、1 から 10000 までの整数のうち、除数の最大数を見つけ、それが何個の除数を含んでいるかを示すことになっています。

public class pract3ex11 {

public static void main (String [] args) {
    int n;
    int i;
    int c=0;
    int max=0;
    int result;
    int d;
    for (n=2; n<10000; n++){
        d=c;
        c=0;
        int x=n;
        result = x;
        for (i=1; i<x; i++){


            result= result%i;
            if (result==0){
                c++;
            }

            if (c>d){
                max=n;

            }
        }
    }
    System.out.println(max+" "+c);

}
4

2 に答える 2

3

を設定するときはmax、 も設定する必要がありますd。そうしないと、2 つの同期が失われます。

if (c>d){
    d = c;
    max=n;
}

また、ループの前に割り当て、削除する必要が0ありますd

d=c;

ループの一番上。

于 2013-04-16T14:27:09.670 に答える
0

考えられる解決策:

public static void main(String[] args) {

      int count; 
      int maxDivisors;  
      int number;  
      maxDivisors = 1;  
      number = 1;
  for ( count = 2;  count  <= 10000;  count ++ ) {
         int x;  
         int divisors = 0;
      for ( x = 1;  x <= count;  x++ ) { 
        if ( count % x == 0 )
            divisors++;
          }

          if (divisors > maxDivisors) {
              maxDivisors = divisors;
              number = count;
          }

      }

      System.out.println("The maximum number of divisors are " + maxDivisors);
      System.out.println("Number is : " + number);
   } 
于 2013-04-16T14:38:43.553 に答える