金蝉素数
金蝉素数
南桥北木 发表于9个月前
金蝉素数
  • 发表于 9个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

public class Mao {

public static void main(String[] args) {
	for (int i = 100; i <= 9999; i++) {
		boolean ok = f(i);
		if (ok) {
			boolean confirm=g(i);
			if(confirm){
				System.out.println("符合条件:"+i);
			}

		}
	}

}
// 试商判别法

public static boolean f(int l) {

	if (l <= 1) {
		return false;
	}

	int max = (int) Math.sqrt(l);
	for (int i = 2; i < max + 1; i++) {
		if (l % i == 0) {
			return false;
		}
	}

	return true;
}

// 判断条件是否成立
public static boolean g(int n) {
	int m = n;
	String result = String.valueOf(m);
	int length = result.length();
	int a1,a2,a3,a4,a5;
	boolean s1,s2,s3,s4,s5,temp=false,temp1=false,temp2=false,temp3=false;
	  
	if (length == 3) {
		//同时去掉最高位和最低位
		a1=m/10;
		a1=a1%10;
		
		//去掉最低位
		a2=m/10;
		
		//去掉最低位两位
	    a3=m/100;
	    
	    //去掉最高位
	    a4=m%100;
	    
	    //去掉最高位两位
	    a5=m%10;
	    
	    s1=f(a1);
	    s2=f(a2);
	    s3=f(a3);
	    s4=f(a4);
	    s5=f(a5);
	    
	    if(s2&&s3){
	    	temp=true;
	    }
	    
	    if(s4&&s5){
	    	temp1=true;
	    }
	
	    if(s1&&temp1&&temp){
	    	return true;
	    }else{
	    	return false;
	    }
	    
	}
	//判断4位数
	if(length==4){
		//同时去掉最高位和最低位
		a1=m/10;
		a1=a1%100;
		
		//去掉最低位
		a2=m/10;
		
		//去掉最低位两位
	    a3=m/100;
	    
	    //去掉最高位
	    a4=m%1000;
	    
	    //去掉最高位两位
	    a5=m%100;
	    
	    s1=f(a1);
	    s2=f(a2);
	    s3=f(a3);
	    s4=f(a4);
	    s5=f(a5);
		
		
	    if(s2&&s3){
	    	temp2=true;
	    }
	    
	    if(s4&&s5){
	    	temp3=true;
	    }
	
	    if(s1&&temp2&&temp3){
	    	return true;
	    }else{
	    	return false;
	    }
		
	}
	
	return false;
	
}

} //注释:本人觉得计算机程序设计经典题解的答案有掉解,欢迎各位提出不同的答案

共有 人打赏支持
粉丝 0
博文 109
码字总数 19397
×
南桥北木
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: