java 判断是不是素数?
1个回答
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
判断number是否是素数有这么几种方法:\x0d\x0a(1)用2至number-1之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。\x0d\x0a(2)用2至number/2之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。\x0d\x0a(3)用2至number的平方根之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。\x0d\x0a\x0d\x0a这3种的方法的效率是逐渐提高的。下面列出了第3种方法的实现:\x0d\x0aimport java.util.Scanner;\x0d\x0a\x0d\x0apublic class Test2 {\x0d\x0a\x0d\x0a public static void main(String[] args) {\x0d\x0a int number; // 输入的数字\x0d\x0a\x0d\x0aScanner input = new Scanner(System.in); \x0d\x0a System.out.println("请输入数字"); \x0d\x0a number = input.nextInt(); // 输入数字\x0d\x0a\x0d\x0a if(isPrimeNumber(number)){\x0d\x0a System.out.println(number + "是一个素数");\x0d\x0a }\x0d\x0a else{\x0d\x0a System.out.println(number + "是一个非素数");\x0d\x0a }\x0d\x0a }\x0d\x0a\x0d\x0a public static boolean isPrimeNumber(int num){\x0d\x0a if(num < 2){\x0d\x0a System.out.println("数据错误");\x0d\x0a return false;\x0d\x0a }\x0d\x0a \x0d\x0a int k = (int)Math.sqrt(num); //num的平方根\x0d\x0a int i;\x0d\x0a for(i=2; i<=k; i++){ //依次用2..k之间的数去整除num,如果没有一个数能被整除,说明num是素数\x0d\x0a if(num % i == 0){\x0d\x0a break;\x0d\x0a }\x0d\x0a }\x0d\x0a if(i > k){\x0d\x0a return true;\x0d\x0a } \x0d\x0a return false;\x0d\x0a }\x0d\x0a} \x0d\x0a\x0d\x0a如果对你的程序进行修改,也可这样:\x0d\x0apublic static void main(String[] args) {\x0d\x0a int number;// 输入的数字\x0d\x0a int j = 2; \x0d\x0a\x0d\x0a Scanner input = new Scanner(System.in);\x0d\x0a System.out.println("请输入数字");\x0d\x0a number = input.nextInt();// 输入数字\x0d\x0a\x0d\x0a for(j=2;j=number)\x0d\x0a System.out.println("这是素数");\x0d\x0a }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询