01/10/2018, 09:29

Hỏi về số hoàn thiện trong java

import java.util.Scanner;
public class Sohoanthien {
		public static void main(String[] args) {
				int nhap;
				int tong=0;
				Scanner input=new Scanner(System.in);
				while(true){
				System.out.print("Moi nhap so nguyen : ");
				nhap = input.nextInt();
				input.nextLine();
				for(int i=1; i<nhap; i++) {
						if(nhap%i==0) {
								tong+=i;
						}
				}
				
				if(tong==nhap){
						System.out.println("So "+nhap+" la so hoan thien");
				}else {
						System.out.println("So "+nhap+" khong la so hoan thien");
				}
				}
		}
}

em nhập số 6 kiểm đúng là số hoàn thiện xong em lại nhập tiếp số 6 lại không phải là số hoàn thiện, mong anh chị giúp em với

X viết 11:33 ngày 01/10/2018

Biến tong hình như chưa được reset sau khi kết luận.

Duy viết 11:31 ngày 01/10/2018

Ở sau câu lệnh System.out.println(“So “+nhap+” la so hoan thien”); bạn gán tong = 0 thì mới đúng kết quả. Do bạn dùng vòng while nên tổng sẽ ko đc reset,nên khi bạn nhập số 6 lại, thì tổng từ 6 -> 12 -> 18 … nên kết quả ra lỗi

Đức Bảo viết 11:36 ngày 01/10/2018

thanks bạn nhiều nha

Bài liên quan
0