用Java之素数问题
程序员文章站
2024-03-15 12:24:05
...
判定一个数字是否是素数 :只有1和自己本身之外没有任何因子的数
思想:从2到n-1去试除,如果能除尽说明它不是素数
方法一:在主函数中进行编写
import java.util.Scanner;
public class Prime{
public static void main(String[] args){
System.out.print("请输入需要查询的数字:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int i = 2;
for(i =2;i <= a;i++){
if (a % i == 0)
break;
}
if(i == a){
System.out.println(a +"该数是素数");
} else{
System.out.println(a +"该数是素数");
}
}
}
方法二:将判断素数写为一个方法,调用该方法
import java.util.Scanner;
public class Prime{
public static boolean isPrime(int num) {
for(int i=2;i<num;i++){
if(num % i == 0){
return false;
}
}
return true;
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
isPrime(a);
if(isPrime(a)== true){
System.out.println(a +"为素数");
}else {
System.out.println(a +"不是素数");
}
}
}
打印1-100之间的素数
方法一:
public class Prime{
public static boolean isPrime(int num) {
for(int i =2;i<num;i++){
if(num % i == 0){
return false;
}
}
return true;
}
public static void main(String[] args){
for(int i = 2;i <= 100;i++){
if(isPrime(i) == true){
System.out.println(i);
}
}
}
}
方法二:与上述方法不同,此方法采用Math.sqrt(num),对num进行开根号,只试除到此数开根号的数。
public class Prime{
public static boolean isPrime(int num){
for(int i = 2;i <= Math.sqrt(num);i++){
if(num % i == 0){
return false;
}
}
return true;
}
public static void main(String[] args){
for(int i = 2;i <= 100;i++){
if(isPrime(i) == true){
System.out.println(i);
}
}
}
}
上一篇: 打印100以内的质数
下一篇: 输出100~200之间的素数。
推荐阅读
-
用Java之素数问题
-
java中文乱码之解决URL中文乱码问题的方法
-
java中文乱码之解决URL中文乱码问题的方法
-
用java解决百度之星移动火柴的问题 part 1 博客分类: Design & Architecture 百度JavajunitUP
-
用java解决百度之星移动火柴的问题 part 2 博客分类: Design & Architecture 百度JavajunitCC++
-
Java两个乒乓球队比赛名单问题(判断素数)
-
java面试常见问题之Hibernate总结
-
Java两个乒乓球队比赛名单问题(判断素数)
-
java面试常见问题之Hibernate总结
-
实例解决Java异常之OutOfMemoryError的问题