08/07/06 15:21:59
>>391
public class ThePrime {
public static void main(String[] args) throws IOException {
System.out.println("4桁の整数を入力:");
Scanner sc = new Scanner(System.in);
int value = sc.nextInt();
if(isPrime(value)) {
System.out.println(value+"は素数");
} else {
System.out.println(value+"は素数ではない");
System.out.println("最大の約数:"+getMaxDivisor(value));
}
for(int lastPrime=value-1; lastPrime>=3; lastPrime--) {
if(isPrime(lastPrime)) {
System.out.println(value+"より小さい素数:"+lastPrime);
break;
}}}
private static boolean isPrime(int value) {
if((value%2) == 0) return false;
for(int i=3; i<value/2; i+=2) if((value%i) == 0) return false;
return true;
}
private static int getMaxDivisor(int value) {
if((value%2) == 0) return value / 2;
int divisor = value;
for(int i=3; i<value; i+=2) if((value%i) == 0) divisor = i;
return divisor;
}}
//エラー無視 & すまん、素数の求め方もあってるか分からんwwwww