package com.interview.algorithms.general; import com.interview.utils.ConsoleWriter; /** * Created_By: stefanie * Date: 14-8-21 * Time: 下午5:11 */ public class C1_48_SquareCheck { static int[] PRIMES = C1_59_PrimeNumber.generate(100); public static int check(int n){ if(n == 1 || n == 0) return n; n = Math.abs(n); //ConsoleWriter.printIntArray(PRIMES); int sqrt = 1; int i = 0; while(n > 1 && n >= PRIMES[i] * PRIMES[i]){ if(n % PRIMES[i] == 0){ if(n % (PRIMES[i] * PRIMES[i]) == 0) { sqrt *= PRIMES[i]; n = n / PRIMES[i] / PRIMES[i]; } else return 0; } else { i++; } } if(n == 1) return sqrt; else return 0; } }