神奇数-Java-牛客模拟三
2017-05-26 21:38
204 查看
package 模拟三; import java.util.ArrayList; import java.util.Scanner; /** * 题目描述:给出一个区间[a, b],计算区间内“神奇数”的个数。 * 神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。 * 比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。 * 输入描述:输入为两个整数a和b,代表[a, b]区间 (1 ≤ a ≤ b ≤ 10000)。//注意次数要包含a,和b。 * 输出描述: 输出为一个整数,表示区间内满足条件的整数个数 * * 输入例子: 11 20 * 输出例子: 6 * * @author 崔洪振367 * @version 创建时间:2017年5月22日 下午10:29:55 * 解题思路:从a到b逐个判断,是不是“神奇数”。该题目给出的解决方法中:是通过两层for循环来判断任意组合的两位数中是否包含质数。 */ public class Q2017_2神奇数 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ int a = scanner.nextInt(); int b = scanner.nextInt(); int count = 0;//统计神奇数字的个数 if(b<10){ //因为范围内不包含大于两位的数字,因此不能组成两位的数字,也就不能组成神奇数字 System.out.println(0); return; } for(int i=a; i<=b; i++){ boolean isP = false; int temp = i; ArrayList<Integer> list = new ArrayList<>(); while(temp != 0){//将数字i逐位存放到ArrayList中 list.add(temp%10); temp = temp / 10; } //判断每个数字是不是神奇的数字 for(int k=0; k<list.size();k++){ if(list.get(k) == 0){ continue; } for(int j=0; j<list.size();j++){ if(k == j){//和前边的数值一样 continue; } //和前边的数值不一样,则重新组合成一个二位数 int newNum = list.get(k)*10 + list.get(j); if(isPrime(newNum)){ isP = true; break; } }//for--j //如果是神奇的数字,则后边的数字不用再判断 if(isP == true){ count++; break; } }//for--k }//for--i System.out.println(count); } scanner.close(); } /** * 判断数字number是不是质数 * @param number * @return */ public static boolean isPrime(int number) { for (int i = 2; i < number; i++) { if (number % i == 0) { return false; } continue; } return true; } }
相关文章推荐
- 数组变换-Java-牛客模拟三
- 组队竞赛-Java-牛客模拟三
- 变换次数-Java-牛客模拟三
- 牛牛的数列-Java-牛客模拟三
- 排序子序列-Java-牛客模拟三
- 膨胀的牛牛-Java-牛客模拟四
- 黑化的牛牛-Java-牛客模拟四
- 添加字符-Java-牛客模拟三
- 黑白卡片-Java-牛客模拟四
- Java学习之神奇的i=i++
- java的"多重继承":interface模拟
- Java: 简单模拟多线程访问同样变量导致的问题
- Java模拟POST表单操作 HttpClient的应用及注意事项
- Java编写的模拟ATM取款机程序
- java做的操作系统进程管理模拟(操作系统作业)
- 关于java模拟ie 访问web网站的解决方法
- java中模拟c中对sizeof的实现
- Java中模拟鼠标和键盘输入
- JAVA程序员模拟考试题tk310-035V12.0(部分)中文翻译和解题分析
- java中 模拟 form get发送 字符 (utf-8 百度的发送方式了)