是否存在一个多位数(多于1位),它的各位数字相同,同时它的
平方数的各位数字也相同。任何进制数字都行。
设计的思路:
把十进制数字按除p取余数转化为p进制数,设置g,p循环,把十进制
g及其平方数s先后转化为p进制数字,同时设置两个标示量t1和t2并且赋值为0
首先把数字g按照除p取余转化为p进制数字,如果该p进制数字存在两位不同,则标注为t1=1
如果p进制数字各位数字都相同保留t1=0
如果t1=0,把数字g的平方数字s转化为p进制数字,如果存在其中的两位数字不同,就标注为t2=1,
否则保留t2 = 0
检测t1=0且t2=0打印数字
package MantissaForword; public class Main { private static int p; private static int e, c, g, d1, d2, t1, t2; private static long s; public static void main(String[] args) { for(p=2;p<=99;p++){ for(g = p+1;g<=9999;g++){ s = g*g; d1 = g; e = d1%p; d1 = d1/p; t1=0; while(d1 > 0){ c = d1%p; d1 = d1/p; if(c != e){ t1 = 1; break; } } if(t1 ==0){ d2 = (int)s; e = d2 % p; d2 = d2/p; t2 = 0; while(d2 > 0){ c = d2%p; d2 = d2/p; if(c != e){ t2 = 1; break; } } } if(t1 == 0&& t2 == 0){//满足条件 System.out.printf("在%d进制中:",p); d1 = g; while(d1 > 0){ c = d1%p; d1 = d1/p; if(c<10){ System.out.printf("%d",c); }else{ System.out.printf("[%d]",c); } } System.out.println("^2="); while(s>0){ c = (int)s%p; s = s/p; if(c<10){ System.out.printf("%d",c); }else{ System.out.printf("[%d]",c); } } } } } } }
时间: 2024-10-25 13:37:53