Написание программы, которая зацикливает факторы на 1-100.Он должен остановиться, когда достигнет числа, в котором есть девять факторов - PullRequest
0 голосов
/ 20 сентября 2019

У меня счетчик увеличивается, но, похоже, он не работает.Это просто продолжает работать до ста.У кого-нибудь есть идеи?

public class Main<x> {

    public static void main(String[] args) {
        int count = 0;
        for(int i = 1; i <= 100; i++) {
            System.out.print("Factors of " + i + ": ");
            for(int j = 1; j < i; j++)
                if(i % j == 0) {
                    count++;
                    if (count == 9)
                        break;
                    System.out.print(j + " ");

                }

            System.out.println("");
 }
}

1 Ответ

0 голосов
/ 20 сентября 2019

Есть пара вещей, которыми я хотел бы поделиться: во-первых, математика, число всегда считается фактором само по себе, поэтому одним из изменений будет проверка j<i, обновленная до j<=i внутри вас, вложеннаядля, но если вы сделали это намеренно, то вам не нужно обновлять его.

Кроме этого, математика, кажется, в порядке, еще одна вещь, чтобы посмотреть, как работает ваш блок if, ваша проверка на счетдолжен выходить за пределы проверки для фактора, т. е. if(i % j == 0), и в этом отношении даже вне второго цикла for, так как разрыв выведет вас за пределы цикла for, к которому он применяется, поскольку вам нужно полностью остановить итерацию, т.е.число не должно совпадать, как только вы получите первое число с 9 факторами, вам нужно держать разрыв в первом цикле for.

Ваш окончательный код должен выглядеть примерно так:

public class Main
{
    public static void main(String[] args) {
        for(int i = 1; i <= 100; i++) {
            int count = 0;
            System.out.print("Factors of " + i + ": ");
            for(int j = 1; j <= i; j++) {
                if(i % j == 0) {
                    System.out.print(j + " ");
                    count++;
                }
            }

            System.out.println("\n");
            if (count >= 9) {
                break;
            }
        }
    }
}

Надеюсь, это поможет !!

...