乱写一通的暴力,跑了几十分钟也不知道对是错
hard!!hard!!hard!!
三角回文数
package daka;
/*
* 三角回文数,n = 1+2+....+k = k*(k+1) / 2;并且回文
*
*
*/
public class sanjhuiw {
public static void main(String[] args) {
int maxPail = Integer.MAX_VALUE;
for(int i =20220514;i<Integer.MAX_VALUE;i++) {
//就在i循环里面new 一个,方便重置
String str = i +"";
//进来先判断是否是回文数
if(ishuiwen(str)) {
//每次回到新的一个数需要重置 sum =0;(细节)
int sum =0;int k =0;
for(int j=1;j<=i / 2;j++) {
sum +=j;
if(sum ==i) {
k =j;//把k拿到
break;
}
}
if(sum == i && (k * (k+1) /2 ==i)) {
maxPail = Math.max(maxPail, i);
}
}
}
System.out.println(maxPail);
}
private static boolean ishuiwen(String str) {
int left = 0;
int right = str.length()-1;
if(str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
return true;
}
}
数数
package sel4fil3;
import java.util.*;
/*
* 数数
* 求区间内的数,有多少个正整数可以被12个质数相乘
* 取质因子,AarrayList保存
*
*
*/
public class shushu {
public static void main(String[] args) {
int ans=0;
for(int i=2333333;i<=23333333;i++) {
int count =0;
for(int j=2;j<= Math.sqrt(i);j++) {
if(i % j ==0 && isPri(j)) {
count++;
if(count>12) {
break;
}
}
}
if(count ==12) {
ans++;
}
}
System.out.println(ans);
}
//判断质数
private static boolean isPri(int num) {
if(num <2) {
return false;
}
for(int i=2;i * i<=num ;i++) {
if(num % i ==0) {
return false;
}
}
return true;
}
}
3.
两篇Java代码分别解决两个问题:一是找出所有三角形数中最大的回文数,二是计算在一定区间内有多少个数能被12个质数相乘。程序通过循环和质数判断函数实现计算目标。
1040

被折叠的 条评论
为什么被折叠?



