Rumah >Java >javaTutorial >Nombor Smith di Jawa

Nombor Smith di Jawa

PHPz
PHPzasal
2024-08-30 16:28:28935semak imbas

Di Jawa kami mempunyai jenis fungsi yang berbeza; nombor smith ialah satu jenis fungsi yang disediakan kepada pengguna. Pada asasnya, nombor smith hanyalah nombor komposit (yang asasnya ialah 10 dalam sistem nombor) yang penambahan semua digit adalah sama dengan penambahan semua digit semua faktor perdananya (tidak termasuk 1), ini dikenali sebagai smith. nombor. Nama lain untuk nombor smith ialah nombor jenaka. Mengikut definisi, kita boleh mengatakan bahawa semua nombor perdana dikecualikan secara semula jadi jika ia memenuhi syarat. Biasanya nombor smith ialah subbidang yang sangat asas bagi sistem nombor yang digunakan dalam matematik mengikut keperluan pengguna dan beberapa keperluannya bagi penyataan masalah.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Logik di sebalik nombor smith

Sekarang mari kita lihat apakah logik di sebalik nombor smith seperti berikut.

Logik nombor smith sangat mudah, mari kita pertimbangkan nombor berikut maka kita akan mudah memahami logiknya seperti berikut.

Contoh: Katakan kita perlu menyemak sama ada nombor yang diberikan ialah nombor smith atau tidak.

Nombor yang diberikan ialah: 95

Pertama, kita perlu mengetahui faktor perdana bagi 95 ialah 19 dan 5 (5, 19)

Sekarang cari jumlah digit iaitu 9 + 5 = 14

Jumlah faktor perdana ialah 5 + 1 + 9 = 15

Sekarang bandingkan kedua-dua keputusan, lihat di sini 14 tidak sama dengan 15. Jadi nombor yang diberikan bukan nombor perdana.

Mari kita pertimbangkan nombor lain seperti berikut.

Nombor yang diberikan: 58

Mula-mula cari faktor perdana bagi 58 = 2 dan 29

Jumlah faktor perdana ialah = 2 + 2 +9 = 13

Jumlah digit nombor yang diberi ialah = 5 + 8 = 13

Sekarang bandingkan kedua-dua keputusan, di sini kedua-dua keputusan adalah sama atau kita boleh katakan ia adalah sama. Jadi kita boleh katakan bahawa nombor yang diberikan ialah nombor smith.

Jadi ini adalah logik yang sangat mudah di sebalik nombor smith, kita hanya perlu membandingkan jumlah faktor utama dan jumlah digit. Jika kedua-dua jumlah adalah sama maka nombor yang diberikan ialah nombor smith sebaliknya nombor itu bukan nombor smith.

Bagaimana untuk Semak nombor Smith dalam Java?

Sekarang mari kita lihat bagaimana kita boleh menyemak sama ada nombor yang diberikan adalah smith atau tidak dalam java seperti berikut.

Dalam perkara di atas, kita telah membincangkan contoh nombor smith yang berbeza. Sekarang mari kita lihat langkah yang berbeza untuk mencari nombor smith seperti berikut.

1. Mula-mula kita perlu memulakan atau membaca nombor daripada pengguna.

2. Selepas itu kita perlu mencari jumlah digit bagi nombor yang diberi.

3. Seterusnya kita perlu mencari faktor perdana bagi nombor tertentu.

4. Sekarang hitung jumlah digit bagi faktor perdana.

5. Sekarang bandingkan jumlah digit nombor tertentu dan jumlah digit faktor perdana.

a. Jika kedua-dua jumlah adalah sama maka kita boleh mengatakan bahawa nombor yang diberikan ialah nombor smith.

b. Jika tidak, kita boleh menganggap nombor yang diberikan bukan nombor smith kerana jumlahnya berbeza.

Jadi langkah yang dinyatakan di atas berguna untuk melaksanakan program nombor smith di Java.

Contoh

Sekarang mari kita lihat contoh nombor smith yang berbeza di java untuk pemahaman yang lebih baik seperti berikut.

Contoh #1

Kod:

import java.util.*;
public class Smith_Num
{
static int F_Sum_P_Fact(int no)
{
int j=2, add=0;
while(no>1)
{
if(no%j==0)
{
add=add+F_S_Digit(j);
no=no/j;
}
else
{
do
{
j++;
}
while(!isPrime(j));
}
}
return add;
}
static int F_S_Digit(int no)
{
int sum=0;
while(no>0)
{
sum=sum+no%10;
no=no/10;
}
return sum;
}
static boolean isPrime(int j)
{
boolean b=true;
int d=2;
while(d<Math.sqrt(j))
{
if(j%d==0)
{
b=false;
}
d++;
}
return b;
}
public static void main(String args[])
{
Scanner s_c = new Scanner(System.in);
System.out.print("Enter a number: ");
int no=s_c.nextInt();
int x = F_S_Digit(no);
int y = F_Sum_P_Fact(no);
System.out.println("addition of digit = "+x);
System.out.println("addition of prime factors digits is = "+y);
if(x==y)
System.out.print("The user enterd number is smith number.");
else
System. out.print("The user entered number is not smith number.");
}
}

Penjelasan

Dalam program di atas, kami cuba melaksanakan program nombor smith di java. Di sini kita mula-mula mencipta fungsi untuk menjumlahkan digit faktor perdana; begitu juga, kami juga mencipta fungsi untuk mencari jumlah digit bagi nombor yang diberikan seperti yang ditunjukkan dalam atur cara di atas. Selepas itu, kami mencipta fungsi untuk menyemak sama ada nombor yang diberikan adalah nombor perdana atau tidak dengan menggunakan fungsi Boolean. Kemudian kami menulis fungsi utama, di dalam fungsi utama kami menerima nombor daripada pengguna dan memanggil semua fungsi yang telah kami buat dan membandingkan kedua-dua jumlah. Jika jumlahnya sama maka cetak nombor yang diberikan sebagai nombor smith dan jika jumlahnya tidak sama maka cetak nombor yang diberikan bukan nombor smith. Output akhir program di atas kami gambarkan dengan menggunakan tangkapan skrin berikut seperti berikut.

Contoh #2

Mari kita lihat contoh lain seperti berikut.

Kod:

import java.util.*;
public class Smith_Num_2
{
static List<Integer> F_P_Fact(int no)
{
List<Integer> output = new ArrayList<>();
for (int j = 2; no % j == 0; no = no/j)
output.add(j);
for (int j = 3; j* j <= no; j=j+2)
{
while (no % j == 0)
{
output.add(j);
no = no/j;
}
}
if (no != 1)
output.add(no);
return output;
}
static int S_Digit(int no)
{
int s= 0;
while (no > 0)
{
s =s+(no % 10);
no = no/10;
}
return s;
}
public static void main(String args[])
{
for (int no = 1; no < 5000; no++)
{
List<Integer> Fact = F_P_Fact(no);
if (Fact.size() > 1)
{
int s = S_Digit(no);
for (int fa : Fact)
s =s-S_Digit(fa);
if (s == 0)
System.out.println(no);
}
}
}
}

Penjelasan

Dalam contoh di atas, kami cuba mencari semua nombor smith sehingga 5000 seperti yang ditunjukkan. Output akhir program di atas kami gambarkan dengan menggunakan tangkapan skrin berikut seperti berikut.

Nombor Smith di Jawa

Kesimpulan

Kami berharap daripada artikel ini anda mempelajari Nombor Smith dalam java. Daripada artikel di atas, kami telah mempelajari logik asas Nombor Smith dan kami juga melihat contoh Nombor Smith yang berbeza. Daripada artikel ini, kami mempelajari cara dan bila kami menggunakan Nombor Smith dalam java.

Atas ialah kandungan terperinci Nombor Smith di Jawa. 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
Artikel sebelumnya:Nombor Sempurna di JawaArtikel seterusnya:Nombor Sempurna di Jawa