• 求约数个数(模板)


    整数的唯一分解定理

    对于一个大于1正整数n可以分解质因数

    约数个数

    其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。

    eg:

    给定n个正整数aiai,请你输出这些数的乘积的约数个数,答案对109+7取模。

    输入格式

    第一行包含整数n。

    接下来n行,每行包含一个整数aiai。

    输出格式

    输出一个整数,表示所给正整数的乘积的约数个数,答案需对109+7109+7取模。

    数据范围

    1n1001≤n≤100,
    1ai21091≤ai≤2∗109

    输入样例:

    3
    2
    6
    8
    

    输出样例:

    12

    代码:
    import java.util.*;
    public class Main{
            static final int N=(int)1e9+7;
            static Map<Integer, Integer> map=new HashMap<Integer, Integer>();
            static int t;
            public static void main(String[] args) {
                    Scanner scan=new Scanner(System.in);
                    t=scan.nextInt();
                    while(t-->0){    
                           //求解每个质因子的指数
                            int n=scan.nextInt();
                            for(int i=2;i<=n/i;i++){
                                    if(n%i==0){
                                        while(n%i==0){
                                            n/=i;
                                            if(map.get(i)==null) map.put(i, 1);
                                                else map.put(i, map.get(i)+1);
                                        }
                                    }
                            }
                            if(n>1) {
                                if(map.get(n)==null) map.put(n, 1);
                                else map.put(n, map.get(n)+1);
                            }
                    }
                    //求约数个数
                    long res=1;
                    Set<Integer> key=map.keySet();
                    Iterator<Integer> it=key.iterator();
                    while(it.hasNext()){
                         int s=it.next();
                         res=res*(map.get(s)+1)%N;
                    }
                    System.out.println(res);
                    
            }
    }
     
  • 相关阅读:
    ORM之聚合和分组查询
    ORM之ManyToManyField操作
    ORM之ForeignKey操作
    ORM之一般操作
    ORM之元信息
    js浮点数的加减乘除
    如何用js去判断当前是否在微信中打开的链接页面
    Vue应用框架整合与实战--Vue技术生态圈篇
    图片纯前端JS压缩的实现
    js要怎么接收后端传的excel文件流?
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12259725.html
Copyright © 2020-2023  润新知