-
Notifications
You must be signed in to change notification settings - Fork 0
/
Day_80_SmithNumber.java
40 lines (39 loc) · 1.1 KB
/
Day_80_SmithNumber.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.TrX;
import java.util.*;
public class Day_80_SmithNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
int n=sc.nextInt();
int a = findSumOfDigit(n);
int b = findSumPrimeFactors(n);
if(a==b)
System.out.print("\n"+n+" is a Smith number\n");
else
System.out.print("\n"+n+" is not a Smith number\n"); }
static int findSumPrimeFactors(int n) {
int i=2, sum=0;
while(n>1) {
if(n%i==0) {
sum=sum+findSumOfDigit(i);
n=n/i; }
else {
do {
i++; }
while(!isPrime(i)); } }
return sum; }
static int findSumOfDigit(int n) {
int s=0;
while(n>0) {
s=s+n%10;
n=n/10; }
return s; }
static boolean isPrime(int k) {
boolean b=true;
int d=2;
while(d<Math.sqrt(k)) {
if(k%d==0) {
b=false; }
d++; }
return b; }
}