[日常一练]用JAVA判断一个数字是否为素数!
什么是素数?
素数:只能被1到它本身整除的数,也就是说一个数从2到n-1都不能整除它就是素数;
一、试除法:
原理:只要把 2 到x -1 的数字全部试除,如果能整除则不是素数,如果不能则是素数;
public static void main(String[] args) {
int x = 11;
Boolean ret = true;
for (int i = 2; i < x-1; i++) {// 把2-n-1的数字全部试除;
if (x % i == 0){ //如果能整除就不是素数;
System.out.println(x+"不是素数");
ret = false; //计数器:如果是素数不赋值,跳出循环判断并打印;
break;
}
} if(ret == true){
System.out.println(x+"是素数");
}
}
二、对半试除:
原理:任何一个数字的最大因数都是他本身的一半,例如:100的最大因数50, 80的最大因数40,所以只需要试除到X/2就可以了,如果i比X的一半大,说明是素数,反之则不是素数;
public static void main(String[] args) {
int x = 11;
int i = 0;
for (i = 2; i <= x/2; i++) {
if(x % i == 0){
System.out.println(x+"不是素数");
break;
}
}
if(i > x/2){
System.out.println(x+"是素数");
}
}
三、开根号(Math.sqrt)
原理: 一个数的两个因数中,一个因数是小于根号X的,另外一个因数则是大于根号X的,也就是可以从2试除到根号X,如果被整除,不是素数,如果被除数大于根号X,则是素数;
public static void main(String[] args) {
//(三)开根号求素数
int x = 11;
int i = 0;
for (i = 2; i <= Math.sqrt(x); i++) {
//Math函数.sqrt方法
if(x % i == 0){
System.out.println(x+"不是素数");
break;
}
} if(i > Math.sqrt(x)) {
System.out.println(x+"是素数");
}
}
开根号B站视频:
什么是素数? 素数:只能被1到它本身整除的数,也就是说一个数从2到n-1都不能整除它就是素数; 一、试除法: 原理:只要把 2 到x -1 的数字全部试除,如果能整除则不是素数,如果不能则是素数; public static void main(String[] args) { int x = 11; Boolean ret = true; for (int i = 2; i < x-1; i++) {// 把2-n-1的数字全部试除; if (x % i == 0){ //如果能整除就不是素数; System.out.println(x+"不是素数"); ret = false; //计数器:如果是素数不赋值,跳出循环判断并打印; break; } } if(ret == true){ System.out.println(x+"是素数"); } } 二、对半试除: 原理:任何一个数字的最大因数都是他本身的一半,例如:100的最大因数50, 80的最大因数40,所以只需要试除到X/2就可以了,如果i比X的一半大,说明是素数,反之则不是素数; public static void main(String[] args) { int x = 11; int i = 0; for (i = 2; i <= x/2; i++) { if(x % i == 0){ System.out.println(x+"不是素数"); break; } } if(i > x/2){ System.out.println(x+"是素数"); } } 三、开根号(Math.sqrt) 原理: 一个数的两个因数中,一个因数是小于根号X的,另外一个因数则是大于根号X的,也就是可以从2试除到根号X,如果被整除,不是素数,如果被除数大于根号X,则是素数; public static void main(String[] args) { //(三)开根号求素数 int x = 11; int i = 0; for (i = 2; i <= Math.sqrt(x); i++) { //Math函数.sqrt方法 if(x % i == 0){ System.out.println(x+"不是素数"); break; } } if(i > Math.sqrt(x)) { System.out.println(x+"是素数"); } } 开根号B站视频: