
java 题目求高手解答
任意输入一个整数,判断该数是质数还是合数?质数的标准是:能被1整数并且能被自身整除的数.合数的标准是:能被1整除也能被自身整除并且还能被其他数整除.小弟刚接触JAVA能学...
任意输入一个整数,判断该数是质数还是合数?
质数的标准是:能被1整数并且能被自身整除的数.
合数的标准是:能被1整除也能被自身整除并且还能被其他数整除.
小弟刚接触JAVA 能学了单成循环 和 IF多重语句.苦恼了半天,请高手指点
小弟感谢不尽;
完全可以解出来的 这是作业题! 如果你不会就不要说解不出来,不能帮忙的不要说废话!
小弟在线等 展开
质数的标准是:能被1整数并且能被自身整除的数.
合数的标准是:能被1整除也能被自身整除并且还能被其他数整除.
小弟刚接触JAVA 能学了单成循环 和 IF多重语句.苦恼了半天,请高手指点
小弟感谢不尽;
完全可以解出来的 这是作业题! 如果你不会就不要说解不出来,不能帮忙的不要说废话!
小弟在线等 展开
4个回答
展开全部
1楼的算法有些错误,i<=j/3是不正确的,应该是小于j的平方根(程序中取整)int zhongjian=(int)Math.sqrt(j);
2楼的算法虽然能执行,但是从平方根到j之间的循环属于无效循环,算法效率太差。
修改一楼代码后是正确的:
public static void judge(int j){
boolean isPrime=false;
int zhongjian=(int)Math.sqrt(j);
for(int i=2;i<=zhongjian;i++){
if(j%i==0){
System.out.println(j+"是一个合数!");
isPrime=true;
break;
}
}
if(!isPrime){
System.out.println(j+"是一个质数!");
}
}
2楼的算法虽然能执行,但是从平方根到j之间的循环属于无效循环,算法效率太差。
修改一楼代码后是正确的:
public static void judge(int j){
boolean isPrime=false;
int zhongjian=(int)Math.sqrt(j);
for(int i=2;i<=zhongjian;i++){
if(j%i==0){
System.out.println(j+"是一个合数!");
isPrime=true;
break;
}
}
if(!isPrime){
System.out.println(j+"是一个质数!");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来解释为什么是平方根吧
一个数a = b * c 那么必然 b<=a,c<=a;
如果说 b<=根号a,那么c必然>=根号a
既然有一个小的约数 那么必然大的约数也存在 根号a是一个分水岭
不知道表述清楚没
一个数a = b * c 那么必然 b<=a,c<=a;
如果说 b<=根号a,那么c必然>=根号a
既然有一个小的约数 那么必然大的约数也存在 根号a是一个分水岭
不知道表述清楚没
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class heshu {
public static void main(String[] args) {
System.out.println("press a number: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
while (!(str = br.readLine()).equals("exit")) {
try {
int num = Integer.parseInt(str);
if (isZhiShu(num)) {
System.out.println("质数");
}
} catch (NumberFormatException e) {
System.out.println("only input a number");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static boolean isZhiShu(int num) {
if (num == 0) {
System.out.println("我也忘了是不是质数了.");
} else {
for (int i=2; i<num; i++) {
if (num%i == 0) {
System.out.println("合数");
return false;
}
}
}
return true;
}
}
import java.io.IOException;
import java.io.InputStreamReader;
public class heshu {
public static void main(String[] args) {
System.out.println("press a number: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
while (!(str = br.readLine()).equals("exit")) {
try {
int num = Integer.parseInt(str);
if (isZhiShu(num)) {
System.out.println("质数");
}
} catch (NumberFormatException e) {
System.out.println("only input a number");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static boolean isZhiShu(int num) {
if (num == 0) {
System.out.println("我也忘了是不是质数了.");
} else {
for (int i=2; i<num; i++) {
if (num%i == 0) {
System.out.println("合数");
return false;
}
}
}
return true;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵 我是一楼的! 看了lkt1002、doorsky123二位的答案以后很受启发,那么答案应该是如lkt1002所写的那样 完全正确!
特别感谢doorsky123朋友的分析,讲得很清晰,学习了 ~~~!!
特别感谢doorsky123朋友的分析,讲得很清晰,学习了 ~~~!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询