在Java 抽取一个随机数由用户输入距离该随机数最接近或相等的质数是多少?
答案:2 悬赏:0 手机版
解决时间 2021-11-15 17:32
- 提问者网友:凉末
- 2021-11-14 16:51
在Java 抽取一个随机数由用户输入距离该随机数最接近或相等的质数是多少?
最佳答案
- 五星知识达人网友:woshuo
- 2021-11-14 17:34
这题目没看懂,也就是随机一个数出来,然后用户还要去算这个数的质数是多少?追问抱歉.因为太赶时间了
改一下
随机一个数出来,然后用户要去算最接近或相等于这个数的质数是多少追答这是求出距离随机数最近的质数:
public static void main(String[] args) {
System.out.println("100以内素数如下:");
int rn=new Random().nextInt(99)+1;//随机1~99的数字
int min=100;//记录离随机数最近的一个质数
int range=0;//记录每个质数到随机数的距离
for (int i = 2; i < 100; i++) {// 循环判断每个数是不是质数
if (isPrimeNumber(i) == true) {
System.out.print(i + " ");
if(i/rn==0){
range=rn-i;
}else{
range=i-rn;
}
if(rn>min&&range min=i;
else if(rn min=i;
}
}
System.out.println("
随机数是:"+rn);
System.out.println("距离最近的质数是:"+min);
}
private static boolean isPrimeNumber(int number) {
for (int i = 2; i <= Math.sqrt(number); i++){// 用这个数循环除以2、3……一直到这个数的平方根数
if (number % i == 0){// 如果有一个数被整除,说明不是质数
return false;
}
}
return true;
}追问如果要确认用户输入的数字是否为最接近或相等于这个随机数的质数应该怎表达,如果输入对了便有分,不对便没分追答用户是先看到随机数再输入 还是说输入了再生产一个随机数去判断 ,你要表达清晰点。追问用户是先看到随机数再输入一个数字,这个数字要为最接近或相等于这个随机数的质数,
要这样问用户: 最接近或相等於(随机数)的数字是追答你把main方法换成下面这个吧:
int rn=new Random().nextInt(99)+1;//随机1~99的数字
System.out.println("
随机数是:"+rn);
System.out.println(" 最接近或相等於(随机数)的数字是:");
Scanner in=new Scanner(System.in);
int num=in.nextInt();
if(!isPrimeNumber(num)){
System.out.println("你输入的不是质数!");
System.exit(1);
}
int min=100;//记录离随机数最近的一个质数
int range=0;//记录每个质数到随机数的距离
for (int i = 2; i < 100; i++) {// 循环判断每个数是不是质数
if (isPrimeNumber(i) == true) {
if(i/rn==0){
range=rn-i;
}else{
range=i-rn;
}
if(rn>min&&range min=i;
else if(rn min=i;
}
}
System.out.println("你输入的数是:"+num+" ,正确的数是:"+min);
if(num==min)
System.out.println("结果正确!加10分!");
改一下
随机一个数出来,然后用户要去算最接近或相等于这个数的质数是多少追答这是求出距离随机数最近的质数:
public static void main(String[] args) {
System.out.println("100以内素数如下:");
int rn=new Random().nextInt(99)+1;//随机1~99的数字
int min=100;//记录离随机数最近的一个质数
int range=0;//记录每个质数到随机数的距离
for (int i = 2; i < 100; i++) {// 循环判断每个数是不是质数
if (isPrimeNumber(i) == true) {
System.out.print(i + " ");
if(i/rn==0){
range=rn-i;
}else{
range=i-rn;
}
if(rn>min&&range
else if(rn
}
}
System.out.println("
随机数是:"+rn);
System.out.println("距离最近的质数是:"+min);
}
private static boolean isPrimeNumber(int number) {
for (int i = 2; i <= Math.sqrt(number); i++){// 用这个数循环除以2、3……一直到这个数的平方根数
if (number % i == 0){// 如果有一个数被整除,说明不是质数
return false;
}
}
return true;
}追问如果要确认用户输入的数字是否为最接近或相等于这个随机数的质数应该怎表达,如果输入对了便有分,不对便没分追答用户是先看到随机数再输入 还是说输入了再生产一个随机数去判断 ,你要表达清晰点。追问用户是先看到随机数再输入一个数字,这个数字要为最接近或相等于这个随机数的质数,
要这样问用户: 最接近或相等於(随机数)的数字是追答你把main方法换成下面这个吧:
int rn=new Random().nextInt(99)+1;//随机1~99的数字
System.out.println("
随机数是:"+rn);
System.out.println(" 最接近或相等於(随机数)的数字是:");
Scanner in=new Scanner(System.in);
int num=in.nextInt();
if(!isPrimeNumber(num)){
System.out.println("你输入的不是质数!");
System.exit(1);
}
int min=100;//记录离随机数最近的一个质数
int range=0;//记录每个质数到随机数的距离
for (int i = 2; i < 100; i++) {// 循环判断每个数是不是质数
if (isPrimeNumber(i) == true) {
if(i/rn==0){
range=rn-i;
}else{
range=i-rn;
}
if(rn>min&&range
else if(rn
}
}
System.out.println("你输入的数是:"+num+" ,正确的数是:"+min);
if(num==min)
System.out.println("结果正确!加10分!");
全部回答
- 1楼网友:玩家
- 2021-11-14 18:59
输入距离 要做什么呢?追问输入距离随机数最接近的质数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯