zoukankan      html  css  js  c++  java
  • 约数之和模板题

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

    输入格式

    第一行包含整数n。

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

    输出格式

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

    数据范围

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

    输入样例:

    3
    2
    6
    8
    

    输出样例:

    252


    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int mod = 1e9+7;
    
    int T,x;
    map<ll,ll> mp;
    void fun(int x){ //计算质因数的个数
        for(int i =2;i<=x/i;i++){
          while(x%i == 0) x/=i,mp[i]++; } if(x>1) mp[x]++; } ll ksm(ll a,ll b){ //快速幂 ll res = 1; while(b){ if(b&1) res = res*a%mod; a = a*a%mod; b>>=1; } return res; } int main(){ cin>>T; while(T--){ cin>>x; fun(x); } ll res = 1; for(auto m: mp){ //基于二项式定义 ll cur = 0; for(int i = 0;i<=m.second;i++){ cur = (cur+ksm(m.first,i))%mod; } res = res*cur%mod; } cout<<res<<endl; return 0; }

  • 相关阅读:
    Python 中的一些小技巧
    Java/Python/Elixir 正则库使用上的注意事项
    Scrapy 学习笔记(一)数据提取
    记第一次面试
    Spring Web MVC 笔记
    Java 单元测试
    Spring 笔记(四)AOP
    C 语言 进阶
    编程的智慧
    Spring 笔记(三)Bean 装配
  • 原文地址:https://www.cnblogs.com/bigbrox/p/11336636.html
Copyright © 2011-2022 走看看