Trang chủLập trìnhLập trình C/C++Số Hoàn Hảo – Tổng Hợp Bài Tập Và Lời Giải |...

Số Hoàn Hảo – Tổng Hợp Bài Tập Và Lời Giải | Lập Trình Java

“Số hoàn thiện (hay còn gọi là số hoàn chỉnh, số hoàn hảo hoặc số hoàn thành) là một số nguyên dương mà tổng các ước nguyên dương chính thức của nó (số nguyên dương bị nó chia hết ngoại trừ nó) bằng chính nó. “

Bài 1: Nhập vào một số nguyên dương n kiểm tra n có phải là số hoàn hảo không.

Code mẫu:

import java.util.Scanner;
import java.lang.Math;
public class MathSubjects{
    public boolean soHoanHao(int n)
    {
        int s=1;
        for(int i=2;i<Math.sqrt(n);i++)
        {
            if(n%i==0) s+=i+(n/i);
        }
        if(n==s) return true;
        else return false;
    }
     
    public static void main(String[] args) {
        MathSubjects A = new MathSubjects();
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a number : ");
        int n = input.nextInt();
        if(A.soHoanHao(n))
        {
            System.out.print(n+" là số hoàn hảo");
        }else {
            System.out.print(n+" không phải là số hoàn hảo");
        }
    }
}

Bài 2: Nhập vào một số nguyên dương n in ra các số hoàn hảo nhỏ hơn hoặc bằng n

Code mẫu:

import java.util.Scanner;
import java.lang.Math;
public class MathSubjects{
    public boolean soHoanHao(int n)
    {
        int s=1;
        for(int i=2;i<Math.sqrt(n);i++)
        {
            if(n%i==0) s+=i+(n/i);
        }
        if(n==s) return true;
        else return false;
    }
     
    public static void main(String[] args) {
        MathSubjects A = new MathSubjects();
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a number : ");
        int n = input.nextInt();
        System.out.print("số hoàn hảo nhỏ hơn hoặc bằng n: ");
        for(int i=1;i<=n;i++)
        {
            if(A.soHoanHao(i))
            {
                System.out.print("  "+i);
            }
        }
    }
}

Bài 3: Nhập vào một số nguyên dương n in ra n số hoàn hảo đầu tiên

Code mẫu:

import java.util.Scanner;
import java.lang.Math;
public class MathSubjects{
    public boolean soHoanHao(long n)
    {
        if(n<2) return false;
        long s=1;
        for(long i=2;i<Math.sqrt(n);i++)
        {
            if(n%i==0) s+=i+(n/i);
        }
        if(n==s) return true;
        else return false;
    }
     
    public static void main(String[] args) {
        MathSubjects A = new MathSubjects();
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a number : ");
        long n = input.nextInt();
        System.out.print("n số hoàn hoàn đầu tiên: ");
        long dem=0, i=1;
        while(dem<n)
        {
            if(A.soHoanHao(i))
            {
                System.out.print("  "+i);
                dem++;
            }
            i++;
        }
    }
}
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x