Bài viết này tôi sẽ hướng dẫn cách giải quyết bài tập Java cơ bản in ra màn hình 4 số hoàn hảo đầu tiên. Nếu bạn chưa biết số hoàn hảo là gì hãy xem bài viết Số Hoàn Hảo là gì? |
Lưu ý bạn nên chỉ viết chương trình cho tìm 4 số hoàn hảo đầu tiên thôi, vì bắt đầu từ số 5 thì nó đã là rất lớn, chưa nói tới chon số thứ 6 thứ 7. Nếu hem tin bạn có thể thử :)) nhưng có thể sẽ bị treo máy hoặc chờ hơi lâu ^^!
Dưới đây là 9 số hoàn hảo đầu tiên:
1: 6
2: 28
3: 496
4: 8.128
5: 33.550.336
6: 8.589.869.056
7: 137.438.691.328
8: 2.305.843.008.139.952.128
9: 2.658.455.991.569.831.744.654.692.615.953.842.176
Java Source - Mã Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package z.test;
/**
*
* @author bnson
* @website vnlives.net
* @create 02/12/2014
*/
public class FindPerfectNumber {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int soTangDan;
int soHoanHao = 0;
int soLuongSoHoanHao = 0;
int tongUocSo;
while(soLuongSoHoanHao < 4) {
soHoanHao++;
tongUocSo = 0;
//Vòng For tìm các ước số của soHoanHao.
for (soTangDan = 1; soTangDan < soHoanHao; soTangDan++) {
//Nếu tìm thấy thì cộng vào tongUocSo;
if (soHoanHao%soTangDan == 0) {
tongUocSo += soTangDan;
}
}
//So sánh tongUocSo với soHoanHao đang kiểm tra.
//Nếu bằng thì nó là số hoàn hảo ngược lại thì không phải.
if (tongUocSo == soHoanHao) {
System.out.println(soHoanHao);
soLuongSoHoanHao++;
}
}
System.exit(0);
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package z.test;
/**
*
* @author bnson
* @website vnlives.net
* @create 02/12/2014
*/
public class FindPerfectNumber {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int soTangDan;
int soHoanHao = 0;
int soLuongSoHoanHao = 0;
int tongUocSo;
while(soLuongSoHoanHao < 4) {
soHoanHao++;
tongUocSo = 0;
//Vòng For tìm các ước số của soHoanHao.
for (soTangDan = 1; soTangDan < soHoanHao; soTangDan++) {
//Nếu tìm thấy thì cộng vào tongUocSo;
if (soHoanHao%soTangDan == 0) {
tongUocSo += soTangDan;
}
}
//So sánh tongUocSo với soHoanHao đang kiểm tra.
//Nếu bằng thì nó là số hoàn hảo ngược lại thì không phải.
if (tongUocSo == soHoanHao) {
System.out.println(soHoanHao);
soLuongSoHoanHao++;
}
}
System.exit(0);
}
}
Result - Kết Quả:
No comments:
Post a Comment