输入包括t+1行,第一行包括一个整数t(1 ≤ t ≤ 10), 接下来t行,每行一个整数x(1 ≤ x ≤ 10^6)
对于每个x,如果可能重排之后变为自己的倍数输出"Possible", 否则输出"Impossible".
2 14 1035
Impossible Possible
n = input() n = int(n) for i in range(n): s = input() slt = [] for j in s: slt.append(j) slt.sort() slt.reverse() sma = '' for j in slt: sma+=j sma = int(sma) if sma%int(s)==0 and sma!=int(s): print("Possible") else: time = sma//int(s) boo = True for j in range(2,time+1): st = str(j*int(s)) temp = list(slt) for k in st: if k in temp: temp.remove(k) else: break if not temp: print("Possible") boo = False break if boo: print("Impossible")
importjava.util.Scanner; publicclassMain { staticString result="Impossible"; publicstaticvoidsort(inta[],intbegin,intend,intold) { if(begin==end) { StringBuffer str=newStringBuffer(""); for(inti=0;i<a.length;i++) { str.append(a[i]); } String string=str.toString(); inttemp=Integer.parseInt(string); if(temp!=old) { if(temp%old==0) { result="Possible"; } } } for(inti=begin;i<=end;i++) { inttemp=a[begin]; a[begin]=a[i]; a[i]=temp; sort(a, begin+1, end, old); inttemp1=a[begin]; a[begin]=a[i]; a[i]=temp1; } } publicstaticvoidallSort(String str,intold) { char[]c=str.toCharArray(); int[]a=newint[c.length]; for(inti=0;i<a.length;i++) { a[i]=c[i]-'0'; } sort(a,0,a.length-1,old); } publicstaticvoidmain(String[] args) { Scanner in=newScanner(System.in); introw=in.nextInt(); in.nextLine(); for(inti=0;i<row;i++) { String str=in.nextLine(); intold=Integer.parseInt(str); allSort(str,old); System.out.println(result); result="Impossible"; } } } |