神奇数
来源:互联网 发布:看淘宝服务器的时间 编辑:程序博客网 时间:2024/04/29 19:45
[编程题] 神奇数
时间限制:1秒
空间限制:32768K
给出一个区间[a, b],计算区间内“神奇数”的个数。
神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。
比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。
神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。
比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。
输入描述:
输入为两个整数a和b,代表[a, b]区间 (1 ≤ a ≤ b ≤ 10000)。
输出描述:
输出为一个整数,表示区间内满足条件的整数个数
输入例子:
11 20
输出例子:
6
实现如下:比较繁琐
import java.util.Scanner;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub Scanner in = new Scanner(System.in); int a=in.nextInt(); int b=0; if(in.hasNext()){ b=in.nextInt(); } //判断取两位后数字是否为质数 //(1)取两位数组合 int count=0; for (int value = a; value <= b; value++) {//从[a,b]区间取值 String s = String.valueOf(value); char[] c = s.toCharArray(); boolean is=false; boolean is1=false; for (int i = 0; i < c.length; i++) { if(is==true||is1==true){break;}for (int j = i+1; j < c.length; j++) {is=false; //正方向 int iszhishu=(c[i]-'0')*10+(c[j]-'0'); //不能以0为先导 if(iszhishu/10!=0){is=iszhishu(iszhishu);}else{is=false;} //反方向 int iszhishu1=(c[j]-'0')*10+(c[i]-'0'); //不能以0为先导 if(iszhishu1/10!=0){is1=iszhishu(iszhishu1);}else{is1=false;}if(is==true||is1==true){count++; break;}}}} System.out.println(count);} //判断是否为质数 private static boolean iszhishu(int iszhishu) {// TODO Auto-generated method stub boolean flag=true;for (int i = 2; i < iszhishu/2; i++) {if(iszhishu%i==0){ flag=false; break;}}return flag;}}
阅读全文
1 0
- 神奇数
- 神奇数
- 神奇数
- 神奇数
- 神奇数
- 神奇数
- 神奇的浮点数
- 神奇的catalan数
- 神奇的Catalan数
- 神奇的魔法数
- 神奇的花朵数
- Universe7的神奇数
- 算法-神奇数
- 神奇数-牛客网习题
- java神奇数
- 【算法题】神奇数
- 物理学之神奇的数
- 找出神奇的“水仙花”数
- java中length,length(),size()区别
- 栈的作用,实现加减乘除的功能
- IDEA下新建一个Web Project并配置tomcat
- (60)组件之形状组件
- Apue第一章
- 神奇数
- 微信小程序-入门篇
- Shell printf命令
- 手机UI设计详解
- 超级详细讲解匈牙利算法
- 几个常用的shell脚本
- C++第七次实验---实验报告
- (61)组件之骨架网格模型组件
- (项目)AR电子书系统创新实训第二周(2)