本文为最近做过的一道编程笔试题,代码实现方式多种多样,此处本人提供的代码可以获得正确解,仅供大家参考。
一、题目描述
在1-10000之间随便输入三组数字n、m、h,将 n 和 m 之间的质数相加,确定并输出当加到哪个数时,累加值大于h。
注意:如果 n 小于或者等于 m 时,输出error。
输入描述:
- 输入三个正整数,每个数字用空格隔开,然后回车。
输出描述:
- 输出一个质数,以及到这个质数为止相加的结果。
示例:
输入: 3 5 7
输出: 5\8
二、Java实现代码程序
package com.bluesky;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int h = sc.nextInt();
getPrimer(m, n, h);
}
public static void getPrimer(int n, int m, int h){
int j,sum=0;
if(n<m){
boolean flag = true;
for(int i=n;i<=m;i++){
for(j=2;j<=i;j++){
if((i%j)==0){
break;
}
}
if(j==i){
sum+=i;
if(sum > h){
flag = false;
System.out.println(i + "\\" + sum);
}
}
}
if(flag){
System.out.println("error");
}
}else{
System.out.println("error");
}
}
}
三、测试结果截图
输入:3 5 7
输出结果如下: