素数问题求解释算法啊

public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int i=0;
for(i=2;i<=Math.sqrt(n);i++)
{
if(n%i==0)
{
System.out.println(n+"不是素数");
break;
}
}
if(i>Math.sqrt(n))
{
System.out.println(n+"是素数");
}
}

这个代码看不到算法,求解啊

素数就是不能被从2开始到他本身的所有整数整除的数,这个代码就是对这个描述的实现

任何不是素数的数可以表示为m*n形式,m和n,必有一个是小于或等于他的平方根,也就是说我只要计算它不被小于等于他的平方根的数所整除,它就是素数。因为大于平方根的数不用计算。