Created
March 13, 2019 14:42
-
-
Save developer-sdk/cd68b478f9c42be18ba29aa40fd696c0 to your computer and use it in GitHub Desktop.
명령형, 자연수 분류기 , 소수 분류기
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package functional.stage1; | |
| import java.util.HashSet; | |
| import java.util.Iterator; | |
| import java.util.Set; | |
| /** | |
| * 명령형 자연수 분류기 | |
| * | |
| * @author whitebeard-k | |
| * | |
| */ | |
| public class ClassifierAlpha { | |
| private int number; | |
| public ClassifierAlpha(int number) { | |
| this.number = number; | |
| } | |
| public boolean isFactor(int potential_factor) { | |
| return number % potential_factor == 0; | |
| } | |
| public Set<Integer> factors() { | |
| HashSet<Integer> factors = new HashSet<>(); | |
| for (int i = 1; i <= Math.sqrt(number); i++) | |
| if (isFactor(i)) { | |
| factors.add(i); | |
| factors.add(number / i); | |
| } | |
| return factors; | |
| } | |
| public int sum(Set<Integer> factors) { | |
| Iterator<Integer> it = factors.iterator(); | |
| int sum = 0; | |
| while (it.hasNext()) | |
| sum += (Integer) it.next(); | |
| return sum; | |
| } | |
| public boolean isPerfect() { | |
| return sum(factors()) - number == number; | |
| } | |
| public boolean isAbundant() { | |
| return sum(factors()) - number > number; | |
| } | |
| public boolean isDeficient() { | |
| return sum(factors()) - number < number; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package functional.stage1; | |
| import java.util.HashSet; | |
| import java.util.Set; | |
| /** | |
| * 명령형 소수 찾기 | |
| * | |
| * @author whitebeard-k | |
| * | |
| */ | |
| public class PrimeAlpha { | |
| private int number; | |
| public PrimeAlpha(int number) { | |
| this.number = number; | |
| } | |
| public boolean isPrime() { | |
| Set<Integer> primeSet = new HashSet<Integer>() { | |
| private static final long serialVersionUID = -8476421042584796116L; | |
| { | |
| add(1); | |
| add(number); | |
| } | |
| }; | |
| return number > 1 && factors().equals(primeSet); | |
| } | |
| public boolean isFactor(int potential_factor) { | |
| return number % potential_factor == 0; | |
| } | |
| public Set<Integer> factors() { | |
| HashSet<Integer> factors = new HashSet<>(); | |
| for (int i = 1; i <= Math.sqrt(number); i++) | |
| if (isFactor(i)) { | |
| factors.add(i); | |
| factors.add(number / i); | |
| } | |
| return factors; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment