Acwing---869. 试除法求约数

1.题目

给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。

输入格式
第一行包含整数 n n n

接下来 n n n 行,每行包含一个整数 a i ai ai

输出格式
输出共 n n n 行,其中第 i i i 行输出第 i i i 个整数 a i ai ai 的所有约数。

数据范围
1 ≤ n ≤ 100 , 1≤n≤100, 1n100,

1 ≤ a i ≤ 2 × 1 0 9 1≤ai≤2×10^9 1ai2×109

输入样例:

2
2
6

输出样例:

1 2 3 6
1 2 4 8

2.基本思想

思路

  • 什么是约数:如果一个数a除以另一个数b的余数为0,即 a%b == 0, 则b是a的约数。

如何求一个数x的所有约数:

  • 用 x 除以 1 到 x 的所有数,如果余数是0,则把除数加到答案中。

可以优化吗?

  • 如果 a / b = c···0,则一定有 a % c = b····0。所以一个数 x 的约数肯定是成对存在的,对称轴是 根号x。
  • 因此,只需要用 x 除以 1 到 根号x 之间的数,如果余数是0,则把除数以及x / 除数加到答案中。

3.代码实现

import java.util.*;

public class _869试除法判定约数 {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while (n-- > 0) {
   
            int ai = sc.nextInt();
            is_divid(ai);
            System.out.println();
        }
    }

    private static void is_divid(int n) {
   
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 1; i <= n / i; i++) {
   
            if (n % i == 0) {
   
                list.add(i);
                if (n / i != i) list.add(n / i);//特判 3*3=9 这种 只加入一次
            }
        }
        Collections.sort(list);
        for (int i : list) System.out.print(i + " ");
    }
}

相关推荐

  1. Acwing---869. 除法约数

    2024-02-16 18:14:02       45 阅读
  2. 除法素数

    2024-02-16 18:14:02       37 阅读
  3. 除法值[中等]

    2024-02-16 18:14:02       45 阅读
  4. AcWing 829. 模拟队列

    2024-02-16 18:14:02       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-16 18:14:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-16 18:14:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-16 18:14:02       87 阅读
  4. Python语言-面向对象

    2024-02-16 18:14:02       96 阅读

热门阅读

  1. Leetcode-657. 机器人能否返回原点

    2024-02-16 18:14:02       53 阅读
  2. vue3 codemirror yaml文件编辑器插件

    2024-02-16 18:14:02       47 阅读
  3. Leetcode With Golang 二叉树 part1

    2024-02-16 18:14:02       54 阅读
  4. 50. C++ 指针函数与函数指针

    2024-02-16 18:14:02       47 阅读
  5. 消息中间件管理系统-RabbitMQ及其两类传输模型

    2024-02-16 18:14:02       51 阅读
  6. c# BlockingCollection 清空

    2024-02-16 18:14:02       52 阅读
  7. 【DDD】学习笔记-实体定义

    2024-02-16 18:14:02       41 阅读
  8. C++ 中的 typedef 和 using

    2024-02-16 18:14:02       50 阅读
  9. RestTemplate自定义设置

    2024-02-16 18:14:02       53 阅读
  10. ES实战--文档间的关系

    2024-02-16 18:14:02       59 阅读