Menemukan faktor dari bilangan bulat tertentu

Saya memiliki sesuatu seperti ini:

int f = 120;
for(int ff = 1; ff <= f; ff++){
    while (f % ff != 0){            
}

Apakah ada yang salah dengan perulangan saya untuk menemukan faktor? Saya benar-benar bingung dengan cara kerja pernyataan for dan while, jadi kemungkinan besar mereka benar-benar salah.

Setelah ini, bagaimana saya akan menugaskan variabel-variabel ke faktor-faktor tersebut?

Tidak ada yang salah dengan perulangan Anda, tetapi perulangan while adalah hal yang salah untuk digunakan di sini. Logika dari perulangan for Anda adalah:

  • Set ff ke 1.
  • Teruskan sementara ff
Komentar (0)

Sepertinya anda tidak akan melakukan sesuatu dengan f atau ff dalam perulangan while anda? Jika demikian, ekspresi f%ff != 0 adalah salah (dan kemudian akan pergi ke perulangan berikutnya dalam perulangan for), atau benar, dan itu akan berakhir dalam perulangan tak terbatas.

Apakah Anda yakin Anda memerlukan while seperti ini?

Komentar (0)

Solusi yang sedikit dimodifikasi: Pertama-tama anda dapat memeriksa apakah variabel x dapat dibagi oleh variabel y. Jika ya, kita akan menghitung 1 dan akan mengulangi proses ini. Untuk penghitung perulangan, x/y digunakan dan anda harus mengecek x>0 untuk menghindari pengulangan ketika x menjadi nol tetapi perulangan belum selesai.

   public class Factor {

    public static void main(String[] args) {

        int x = 48;
        int x1 = x;
        int y = 2;
        int k = x / y;
        int j = 0;
        for (int i = 1; i < k; i++) {
            if ((x % y) == 0 && x > 0)
                j++;
            x = x / 2;
        }
        System.out.println(+x1 + " is a factor of " + y + " for " + j
                + " times.");

    }
}
Komentar (0)