Skip to content

Instantly share code, notes, and snippets.

@developer-sdk
Created March 13, 2019 14:42
Show Gist options
  • Select an option

  • Save developer-sdk/cd68b478f9c42be18ba29aa40fd696c0 to your computer and use it in GitHub Desktop.

Select an option

Save developer-sdk/cd68b478f9c42be18ba29aa40fd696c0 to your computer and use it in GitHub Desktop.
명령형, 자연수 분류기 , 소수 분류기
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;
}
}
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