An Easy Problem!

原创 2012年03月27日 16:43:46
Have you heard the fact "The base of every normal number system is 10" ? Of course, I am not talking about number systems like Stern Brockot Number System. This problem has nothing to do with this fact but may have some similarity. 

You will be given an N based integer number R and you are given the guaranty that R is divisible by (N-1). You will have to print the smallest possible value for N. The range for N is 2 <= N <= 62 and the digit symbols for 62 based number is (0..9 and A..Z and a..z). Similarly, the digit symbols for 61 based number system is (0..9 and A..Z and a..y) and so on.



import java.util.*;
import java.math.*;

public class Main
{
	    public static int solve(String s)
	    {
	    	int ans = 0;
	    	for(int i=0;i<s.length();i++)
	    	{
	    		char ch = s.charAt(i);
	    		if(ch>='0'&&ch<='9') 
	    		{
	    			int temp = Integer.parseInt(String.valueOf(ch));
	    			if(ans<temp)ans = temp;
	    		}
	    		else if(ch>='A'&&ch<='Z')
	    		{
	    			int temp = ch-'A'+10;
	    			if(ans<temp) ans = temp;
	    		}
	    		else if(ch>='a'&&ch<='z')
	    		{
	    			int temp=ch-'a'+36;
	    			if(ans<temp) ans = temp;
	    		}
	    		else
	    			ans = 62;
	    	}
	    	if(ans==62||ans==0)return 63;
	    	
	    	boolean flag = false;
	    	int i=0;
	    	for( i=ans+1;i<=62;i++)
	    	{
	    		int mod=0;
	    		char ch;
	    		for(int j=0;j<s.length();j++) 
	    		{
	    			 ch = s.charAt(j);
		    		if(ch>='0'&&ch<='9') 
		    		{
		    			int temp = Integer.parseInt(String.valueOf(ch));
		    			mod = (mod*i+temp)%(i-1);
		    		}
		    		else if(ch>='A'&&ch<='Z')
		    		{
		    			int temp = ch-'A'+10;
		    		    mod =(mod*i+temp)%(i-1);	    		}
		    		else if(ch>='a'&&ch<='z')
		    		{
		    			int temp=ch-'a'+36;
		    			   mod =(mod*i+temp)%(i-1);	 
		    		}
	    		}
	    		if(mod==0){flag = true;break;}
	    	}
	    	if(flag) return i;
	    	else return 63;
	    	
	    }
      public static void main(String[]args)
      {
    	  Scanner in = new Scanner(System.in);
    	  String s;
    	  while(in.hasNext())
    	  {
    		  s = in.next();
    		  int te = Main.solve(s);
    		  if(te==63)
    			  System.out.println("such number is impossible!");
    		  else 
    			  System.out.println(te);
    	  }
      }
}


                    

HDU 2601An easy problem-素数的运用,暴力求解

An easy problem Time Limit: 3000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %...
  • qq_18661257
  • qq_18661257
  • 2015年07月28日 11:57
  • 963

hdoj 2601 An easy problem 【技巧(转换思维)】

An easy problem Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)...
  • dxx_111
  • dxx_111
  • 2015年09月27日 11:00
  • 205

poj-2826 An Easy Problem?!(计算几何,好题)

题目链接:点击打开链接 An Easy Problem?! Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1...
  • acm_cxq
  • acm_cxq
  • 2016年04月28日 14:37
  • 597

[POJ2826]An Easy Problem?!(计算几何-细节/距离)

题目: 我是超链接 题意: 给出两条线段,雨水从空中竖直落下,问线段上能积多少水。 题解: 一道特判超~~~多的题目,下见注释咯 这道题精度会有-0.00?!加个fabs吧。 这...
  • Blue_CuSO4
  • Blue_CuSO4
  • 2018年01月16日 22:00
  • 883

easy ui 实现页面的布局

首先 就是我们要在HTML里面引入的CSS JS 文件
  • qq_19524879
  • qq_19524879
  • 2014年09月18日 14:40
  • 1582

easy ui 行内编辑数据并保存

var editIndex = undefined; var edit_flag = false; $(function(){ var data; var t; ...
  • u014136910
  • u014136910
  • 2016年07月13日 16:22
  • 1561

easy ui 大部分功能属性

 转自:http://www.jb51.net/article/26077.htm 找了个时间看了下EasyUI插件,对它的插件感觉是很舒服,特地把Easy UI的大部分功能属性做了一下汇总。...
  • laokaizzz
  • laokaizzz
  • 2014年04月02日 17:17
  • 1246

Easy AR初级开发教程

Easy AR简单教程 相关SDK资源下载链接:http://pan.baidu.com/s/1dERtCWD   密码:o0jd 1、ImageTarget的制作 (1)、导入EasyARSD...
  • qq_38785971
  • qq_38785971
  • 2017年05月14日 20:40
  • 1501

Operating Systems: Three Easy Pieces(操作系统:三个简单方面)4.3进程创建的更多细节

4.3进程创建:更多的细节 首先我们要揭秘的是,程序是怎样转换为进程的。尤其是,操作系统怎么得到一个程序并将之运行?进程创建实际上是怎么作用的? 操作系统想要允许程序时,最先要做的事情就是将程序的代码...
  • u010970209
  • u010970209
  • 2016年03月17日 15:13
  • 1906

Easy UI datagrid 多行数据操作

最近做
  • uuloveqiqi
  • uuloveqiqi
  • 2014年09月17日 21:08
  • 681
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:An Easy Problem!
举报原因:
原因补充:

(最多只允许输入30个字)