1096 大美数(JAVA)

简介: 若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。

 

若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。

输入格式:

输入在第一行中给出正整数 K(≤10),随后一行给出 K 个待检测的、不超过 104 的正整数。

输出格式:

对每个需要检测的数字,如果它是大美数就在一行中输出 Yes,否则输出 No

输入样例:

3
18 29 40

image.gif

输出样例:

Yes
No
Yes

image.gif

代码实现:

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
/**
 * @author yx
 * @date 2022-07-27 14:15
 */
public class Main {
    static PrintWriter out=new PrintWriter(System.out);
    static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer in=new StreamTokenizer(ins);
    public static void main(String[] args) throws IOException {
        in.nextToken();
        int k=(int) in.nval;
        for (int i = 0; i < k; i++) {
            in.nextToken();
            int n=(int) in.nval;
            if(isDam(n)){
                System.out.println("Yes");
            }else {
                System.out.println("No");
            }
        }
    }
    static boolean isDam(int n){
        HashSet<Integer> set=new HashSet<>();
        for (int i = 1; i*i <=n ; i++) {
            if(n%i==0){
                set.add(i);
                set.add(n/i);
            }
        }
        ArrayList<Integer> list=new ArrayList<>(set);
        Collections.sort(list);
        for (int i = 0; i <list.size() ; i++) {
            for (int j = i+1; j < list.size(); j++) {
                for (int k = j+1; k <list.size() ; k++) {
                    for (int l = k+1; l < list.size(); l++) {
                       int sum=list.get(i)+list.get(j)+list.get(k)+list.get(l);
                       if(sum%n==0){
                           return true;
                       }
                    }
                }
            }
        }
        return false;
    }
}

image.gif

image.gif编辑

相关文章
|
4月前
|
存储 Java 数据库连接
Java中的数据持久化技术详解
Java中的数据持久化技术详解
|
存储 SQL 缓存
JAVA问答17
JAVA问答17
84 0
|
存储 Java 调度
Java 编译指令集大全
Java 编译指令集大全
190 0
|
SQL XML Java
JAVA问答2
JAVA问答2
134 0
|
存储 Dubbo 固态存储
JAVA问答10
JAVA问答10
118 0
1062 最简分数(JAVA)
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。
1062 最简分数(JAVA)
|
编解码 Java
1068 万绿丛中一点红(JAVA)
对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。
1068 万绿丛中一点红(JAVA)
|
Android开发
java42-巩固练习
java42-巩固练习
117 0
java42-巩固练习
|
Android开发
java34-巩固练习
java34-巩固练习
97 0
java34-巩固练习
|
Java
Java一些常见的坑
总是觉得自己Java基础还是不行,需要恶补。今天偶然mark了一本《Java解惑》,其中以端程序的方式罗列了95个即常见又不常见的xian(坑)jing(儿),拿来瞻仰一下。
86 0
下一篇
无影云桌面