Rumah  >  Artikel  >  Java  >  Bagaimana untuk Membetulkan Ralat "Nombor Integer Terlalu Besar" Apabila Mencari Faktor Utama?

Bagaimana untuk Membetulkan Ralat "Nombor Integer Terlalu Besar" Apabila Mencari Faktor Utama?

Patricia Arquette
Patricia Arquetteasal
2024-11-09 19:27:02794semak imbas

How to Fix the

Mengatasi Ralat "Nombor Integer Terlalu Besar" untuk 600851475143

Coretan kod memberikan percubaan untuk mencari faktor perdana terbesar bagi nombor 600183147514531475188 Walau bagaimanapun, apabila menjalankan kod, ia menghadapi ralat "Nombor integer terlalu besar". Ralat ini timbul kerana 600851475143 melebihi nilai maksimum yang boleh diwakili oleh integer 32-bit, iaitu jenis yang digunakan dalam kod.

Untuk menyelesaikan isu ini dan mencari faktor perdana terbesar 600851475143, kod mesti menggunakan jenis data yang mampu mewakili nilai yang lebih besar. Ini boleh dicapai dengan mengubah suai jenis i kepada panjang, integer 64-bit.

Berikut ialah kod yang diperbetulkan:

public class Three {
    public static void main(String[] args) {
        Three obj = new Three();
        obj.function(600851475143L);
    }

    private Long function(long i) {
        Stack<Long> stack = new Stack<Long>();

        for (long j = 2; j <= i; j++) {
            if (i % j == 0) {
                stack.push(j);
            }
        }
        return stack.pop();
    }
}

Dengan menulis 600851475143 literal sebagai 600851475143L, ia adalah jelas. diwakili sebagai integer 64-bit. Ini membolehkan kod mencari dan mengembalikan faktor perdana terbesar nombor yang diberikan dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat "Nombor Integer Terlalu Besar" Apabila Mencari Faktor Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn