求小于n的最大素数

大神们看看为什么结果不对
package easy;

import java.util.Scanner;

public class Numeber_shift2 {

public static void main(String[] args) {
Scanner scan = new Scanner (System.in); // TODO 自动生成的方法存根
long a,n,i;

n=scan.nextLong();
a=n;

for(--n;n>0;){
for( i=2; i<n; i++){
if((n % i==0)&&(n==i)){
break;
}
else if((n%i==0) && (n==i)){
System.out.println("最大的素数是: " + n);
}
}

}

}

}
Java
如果有其它写法也可以告诉我

第1个回答  2015-10-26
import java.util.Scanner;

public class MyNum {

private static Scanner input = new Scanner(System.in);

public static void main(String[] args){
int number,flag=0;
int i=2;
System.out.print("\nInput your number: ");
number=input.nextInt();
for(i=2;i<number;i++)
if(isNum(i))
flag=i;
System.out.println("\nThe max number is: "+flag);
}

public static boolean isNum(int number){
for(int i=2;i<=Math.sqrt(number);i++)
if(number%2==0)
return false;
return true;
}

}

试试
第2个回答  推荐于2016-10-17
package easy;

import java.util.Scanner;

public class Numeber_shift2 {

public static void main(String[]args) {
Scanner scan = new Scanner(System.in); // TODO 自动生成的方法存根
long a,n,i;

n = scan.nextLong();

for (--n; n > 0;n-- ) {
a = 0;
for (i = 2; i < n; i++) {
if (n % i == 0) {
break;
}
a=i+1;
}
if(a==n){
System.out.println("最大的素数是: " + n);
break;
}
}

}

}
直接在你的基础上改的.本回答被提问者和网友采纳