常见算法题集
一:题目
/*
* 说明:判断一个数字是否是素数
* 输入: 输入需要判断的数字
* 输出:是素数则输出true,否则输出false
* 示例:
* 请输入需要判断的数字
* 977
* true
* 算法思想: 1:1和偶数(除过2)不是素数,直接判断不是素数返回false
* 2:输入的其余奇数从3开始到输入数字的平方跟中的基数(减少重复运算)开始除判断输入的数是否可对其取余为* 0,如果是则不是素数返回false
* 3:其余的情况则返回是素数true。
*/
二:代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要判断的数字");
while (sc.hasNext()) {
boolean isPrime = true;
int param = sc.nextInt();
//如果是1或者是偶数(除过2)则直接判断是非素数
if(param ==1 || param %2 ==0 && param !=2 )
{
isPrime = false;
}
else
{ // 使用Math.sqrt()平方根和i+=2来减少计算量。
for( int i =3; i< Math.sqrt(param); i+=2)
{
if( param % i == 0)
{
isPrime = false;
break;
}
}
}
System.out.println(isPrime+"\n请输入需要判断的数字");
}
}
-----------------------------------------------------------------底线-----------------------------------------------------------------