62,615
社区成员
发帖
与我相关
我的任务
分享
package org.michael;
import java.util.ArrayList;
import java.util.List;
public class Test10Y {
/**
* 10Y内的回文质数
* @param strings
*/
public static void main(String... strings) {
long time = System.currentTimeMillis();
System.out.println("now time:" + time+" start........................");
List list = new ArrayList();
for (int i = 0; i < 1000000000; i++) {
//筛掉偶数的回文数
if(i%2!=0){
boolean flag = runbackNum(i);
if(flag==true){
list.add(i);
// System.out.println("-->"+i);
}
}else{
continue;
}
}
System.out.println("end search the runbackNum.........................................................................");
System.out.println("use time:"+(System.currentTimeMillis()-time)/1000+" s");
int temp = list.size();
List listPrime = new ArrayList();
for(int i=0;i<temp;i++){
if(isPrime((Integer)list.get(i))){
listPrime.add(list.get(i));
}
}
System.out.println(listPrime.size());
System.out.println("***************************************************************************************************");
int lengthPrime = listPrime.size();
for(int i=0;i<lengthPrime;i++){
if(i%20==0){
System.out.println("");
}
System.out.print((Integer)listPrime.get(i)+" ");
}
System.out.println("totle time:" + (System.currentTimeMillis()-time)/1000+" s");
}
/**
* 判断回文数
* @param num
* @return
*/
private static boolean runbackNum(int num){
String str = num + "";
int length = str.length();
boolean flag = true;
if (length > 1) {
for (int j = 0; j < length / 2; j++) {
if (str.charAt(j) == str.charAt(length - j - 1)) {
flag = flag && true;
} else {
flag = flag && false;
break;
}
}
}
return flag;
}
/**
* 判断质数
* @param num
* @return
*/
private static boolean isPrime(int num){
boolean isPrime = true;
for(int j=2;j<Math.sqrt(num)+1;j++){
if(num%j==0){
isPrime=false;
break;
}
}
return isPrime;
}
}
public class HuiWen4 {
public static void main(String[] args) {
long t1 = System.currentTimeMillis();
int j = 0;
int len;
int halfLen;
int buffer1;
int k = 0;
int iBuffer;
String s;
boolean flag;
for (int i = 11; i < 100000000;) {
flag = true;
s = String.valueOf(i);
len = s.length();
halfLen = len / 2;
for (int m = 0; m < halfLen; m++) {
if (s.charAt(m) != s.charAt(len - 1 - m)) {
flag = false;
break;
}
}
if (flag) {
iBuffer = i;
buffer1 = (int) Math.pow(10, halfLen);
for (k = halfLen; k < len; k++) {
if (s.charAt(k) == '9') {
buffer1 = buffer1 / 10;
if (k == len - 1) {
i++;
}
} else {
i = i + buffer1;
break;
}
}
if (isZhiShu(iBuffer)) {
System.out.println(iBuffer);
j++;
}
} else {
i = i + 1;
}
}
long t2 = System.currentTimeMillis();
System.out.print(t2 - t1);
System.out.println("ms");
System.out.println("count:" + (j + 10));
}
public static boolean isZhiShu(int i) {
if (i <= 7) {
if (i == 2 || i == 3 || i == 5 || i == 7)
return true;
}
int c = 7;
if (i % 2 == 0)
return false;
if (i % 3 == 0)
return false;
if (i % 5 == 0)
return false;
int end = (int) Math.sqrt(i);
while (c <= end) {
if (i % c == 0) {
return false;
}
c += 4;
if (i % c == 0) {
return false;
}
c += 2;
if (i % c == 0) {
return false;
}
c += 4;
if (i % c == 0) {
return false;
}
c += 2;
if (i % c == 0) {
return false;
}
c += 4;
if (i % c == 0) {
return false;
}
c += 6;
if (i % c == 0) {
return false;
}
c += 2;
if (i % c == 0) {
return false;
}
c += 6;
}
return true;
}
}
public class HuiWen4 {
public static void main(String[] args) {
long t1 = System.currentTimeMillis();
int j = 0;
int len;
int halfLen;
int buffer1;
int k = 0;
int iBuffer;
String s;
boolean flag;
for (int i = 10; i < 100000000;) {
flag = true;
s = String.valueOf(i);
len = s.length();
halfLen = len / 2;
for (int m = 0; m < halfLen; m++) {
if (s.charAt(m) != s.charAt(len - 1 - m)) {
flag = false;
break;
}
}
if (flag) {
iBuffer = i;
buffer1 = (int) Math.pow(10, halfLen);
for (k = halfLen; k < len; k++) {
if (s.charAt(k) == '9') {
buffer1 = buffer1 / 10;
if (k == len - 1) {
i++;
}
} else {
i = i + buffer1;
break;
}
}
if (isZhiShu(iBuffer)) {
System.out.println(iBuffer);
j++;
}
} else {
i = i + 1;
}
}
long t2 = System.currentTimeMillis();
System.out.print(t2 - t1);
System.out.println("ms");
System.out.println("count:" + (j + 4));
}
public static boolean checkZhiShu(int i){
int len = (int) Math.sqrt(i);
for(int j=2;j<=len;j++){
if(len%j == 0){
return false;
}
}
return true;
}
}
public static void main(String[] args) {
for (int i = 1; i < 10000; i++) {
int reverse = reverse(i);
if (reverse % 2 == 0)
continue;
int palindrome = i;
int length = length(i);
int pow = 1;
for (int j = 0; j < length; j++)
pow *= 10;
palindrome = palindrome * pow + reverse;
if (isPrime(palindrome))
System.out.println(palindrome);
int temp = i * 10;
for (int k = 0; k < 10; k++) {
palindrome = temp + k;
palindrome = palindrome * pow + reverse;
if (isPrime(palindrome))
System.out.println(palindrome);
}
}
}
public static boolean isPrime(int i) {
if (i < 2)
return false;
if (i % 2 == 0 && i > 2)
return false;
for (int j = 3; j * j <= i; j += 2) {
if (i % j == 0)
return false;
}
return true;
}
public static void main(String[] args) {
for (int i = 1; i < 10000; i++) {
int reverse = reverse(i);
if (reverse % 2 == 0)
continue;
int length = length(i);
int palindrome = i;
for (int j = 0; j < length; j++)
palindrome *= 10;
palindrome += reverse;
if (isPrime(palindrome))
System.out.println(palindrome);
for (int k = 0; k < 10; k++) {
palindrome = i * 10 + k;
for (int j = 0; j < length; j++)
palindrome *= 10;
palindrome += reverse;
if (isPrime(palindrome))
System.out.println(palindrome);
}
}
}
public static boolean isPrime(int i) {
if (i < 2)
return false;
for (int j = 2; j * j <= i; j++) {
if (i % j == 0)
return false;
}
return true;
}
public static int reverse(int i) {
int res = 0;
while (i != 0) {
res *= 10;
res += i % 10;
i /= 10;
}
return res;
}
public static int length(int i) {
int res = 0;
while (i != 0) {
i /= 10;
res++;
}
return res;
}