Rumah > Java > javaTutorial > 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
Lepaskan: 2024-11-09 19:27:02
asal
836 orang telah melayarinya

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();
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan