竞码编程-蓝桥杯模拟赛(大学生组&青少年组)

(http://oj.hzjingma.com/contest/problem?id=20&pid=4)**

**D. D:价值之和 10’*`

**
描述
【问题描述】
定义数字x的价值为其不同质因子的个数。
例如:数字2020可以写成2020=2∗2∗5∗101,其价值为3.
JM boy请你帮忙计算整数1到2020中,所有都不包含数字5的正整数的价值之和。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数(提示:答案最后一位数是奇数),在提交答案时只填写这个整数,填写多余的内容将无法得分。

/*
质数:指在 大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。  
质因子:能整除给定正整数的 质数
写一个函数function1:
判断一个数的每一位是否包含数字5,用 x % 10 == 5 判断, 然后再去掉最后一位

再写一个函数function2:
对于一个给定的数x,判断起质因子的个数。
直接枚举2到x−1,判断是否是质数,是否是x的因子,如果是,则计数+1
答案:3257
*/
import java.util.Arrays;
import java.util.Scanner;
public class Main{
	public static boolean prime(int x) {
		for(int i=2;i*i<=x;i++) {
			if(x%i==0) return false;
		}
		return true;
	}
	public static boolean ok(int x) {
		while(x>0) {
			if(x%10==5) return false;
			x/=10;
		}
		return true;
	}
	public static int f(int x) {
		int cnt=0;
		for(int i=2;i<=x;i++) {
			if(!prime(i)) continue;
			if(x%i==0) cnt++;
			while(x%i==0) {
				x/=i;
			}
		}
		return cnt;
	}
	public static void main(String[]args) {
		Scanner sc=new Scanner(System.in);
		int ans=0;
		for(int i=1;i<=2020;i++) {
			if(ok(i)) {
				ans+=f(i);
			}
		}
		System.out.println(ans);//3257
		
	}
}

E. E:数方 15’

描述
【问题描述】

在右图A到I的9个格子中填入1−9中的任意数字,不要求每一个数字都填入,也不要求每一个数字只能填一次。
但是,得满足以下条件:
|A|B |C
|D|E |F
|G|H|I
1、 数字ABC构成的三位数ABC是一个立方数

2、 数字DEF构成的三位数DEF是一个质数

3、 数字GHI构成的三位数GHI是一个平方数

4、 数字ADG构成的三位数ADG是一个三角数

5、 数字BEH构成的三位数BEH是一个四次方数

6、 数字CFI构成的三位数CFI是一个回文数

提示:三角数即正整数前n项和1,3,6,10,15,21,28,……
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为九个数字,依次为A B C D E F G H I,在提交答案时依次填写这九个数字,相邻两个数字用一个空格隔开,填写多余的内容将无法得分。

/*
这个题目可以手算结合编程求答案。从三位数的四次方数作为出发点,逐个确定。当然,在判断质数,三角数的时候计算量比较大,可以借助计算机,编程快速计算。
 
当然这个题目,编程写,有趣的很。
9个for循环嵌套,枚举每一个数字,9个数字填好之后,再判断是否满足6个条件,如果满足,则就是答案。  

当然,如果不加优化,需要等电脑跑一会就是了~
 
答案:
7 2 9 4 5 7 1 6 9
*/
import java.util.Scanner;
public class Main{
	public static boolean prime(int x) {
		for(int i=2;i*i<=x;i++) {
			if(x%i==0) return false;
		}
		return true;
	}
	public static boolean sanjiao(int x)
	{
		int ans=0;
		for(int i=1;;i++) {
			if(i*(i+1)<2*x) continue;
			if(i*(i+1)==2*x) return true;
			return false;
		}
	}
	public static boolean power(int x,int n) {
		if(Math.pow(Math.pow(x, 1d/n), n)-x)<=Math.pow(10, -6)) {
			System.out.println(x);
			return true;
		}
		System.out.println("NO");
		return false;
	}
	public static void main(String[]args) {
//		for(int A=1;A<=9;A++) {
//			for(int B=1;B<=9;B++) {
//				for(int C=1;C<=9;C++) {
//					if(!power(A*100+B*10+C,3)) continue;
//					System.out.println("Diyiguan");
//					for(int D=1;D<=9;D++) {
//						for(int E=1;E<=9;E++) {
//							for(int F=1;F<=9;F++) {
//								if(!prime(D*100+E*10+F))continue;//2质数
//								for(int G=1;G<=9;G++) {
//									if(!sanjiao(A*100+D*10+G)) continue;//3三角数
//									for(int H=1;H<=9;H++) {
//										if(!power(B*100+E*10+H,4)) continue;
//										for(int I=1;I<=9;I++) {
//											if(C!=I) continue;//5回文数
//											if(power(G*100+H*10+I,2)) {
//												System.out.printf("%d %d %d %d %d %d %d %d %d", A,B,C,D,E,F,G,H,I);
//												return ;
//											}
//										}
//									}
//								}
//							}
//						}
//					}
//				}
//			}
//		}
		//A B C,D,E,F,G,H,I
		//7 2 9 4 5 7 1 6 9
		System.out.println(Math.pow(10, -16)+"NO");
		if(power(157,2)) {
			System.out.println("729YES");
		}else {
			System.out.println("&29NO");
		}
	}
}
发布了8 篇原创文章 · 获赞 0 · 访问量 4002

猜你喜欢

转载自blog.csdn.net/dregs_/article/details/104222303
今日推荐