1201: 约数

Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 14  Solved: 4 [Submit][Status][Web Board]

Description

我们定义F(n)为n的约数个数(包含1和它本身),例如F(6)=4;

求F(n)想必大家都会,今天UnkelTao想知道的是,[1=<i<=n]最大的F(i)是多少呢?

Input

输入第一行为数据组数 T(T <= 100)。

对于每组数据,只有一个数字 n(1 <= n <= 10^9)

Output

对于每组数据,请在一行中输出两个数,即i从 [1, n]中最大的F(i),输出i和F(i);用一个空格隔开,如果有相同的F(i)输出最小的i。格式见样例。如果使用大数,请用long long而非__int64;(long long大小为10^18次方左右)输入输出则使用(sacnf("%lld",&n)和printf("%lld",n); 或者cin,cout)

Sample Input

3
10
20
30

Sample Output

6 4
12 6
24 8

解法:#include<cstdio>#include<cmath>#include<iostream>#include<cstring>using namespace std;long long ss[10]={2,3,5,7,11,13,17,19,23,29};long long n,da[10],ans,xxx;int js()                      //计算当前状态下枚举出的数字的因子个数{    int i;    long long tot=1;            for (i=0;i<10;i++)    {        if (da[i]==0) break;        tot*=(da[i]+1);    }    return tot;}void search(int x,int tot)   //由素数表枚举数{    long long tt,t;    t=tot;    if (tot*ss[x]>n)    {        tt=js();        if (tt>ans){ans=tt;xxx=tot;}        if (tt==ans)            if (tot<xxx) xxx=tot;        return;    }    while (1)    {        t*=ss[x];        if (t>n) break;        da[x]++;        search(x+1,t);    }    da[x]=0;}int main(){    int ttt,ll;    long long x,t;    cin>>ttt;    for (ll=1;ll<=ttt;ll++)    {        cin>>n;        if (n==1){cout<<"1 1"<<endl;continue;}        memset(da,0,sizeof(da));        ans=0;        search(0,1);        cout<<xxx<<" "<<ans<<endl;    }} 

转载于:https://www.cnblogs.com/mbcxm/p/3187278.html

soj1201- 约数相关推荐

  1. 图论 + 数论 ---- CF1325E E. Ehab‘s REAL Number Theory Problem (约数个数 + 枚举 + bfs找最小环)[从图结构优化搜索]

    题目链接 题目大意: 给你nnn个数,每个数保证约数个数不超过777个.问你从中选出若 干个数的乘积是完全平方数,最少要选择多少个数?,不存在输出-1. 题目思路: 1.每个数约数不超过7个→\rig ...

  2. Sigma Function LightOJ - 1336[约数和定理]

    题目大意:求1到n之间的数因子和是偶数有几个 解题思路:对于任意一个xxx,都有x=p1a1∗p2a2∗p3a3...∗pxas,x的所有约数之和就是sum=(1+p11+p12+..p1a1)∗(1 ...

  3. 求有多少个数是这个数的约数

    引入问题 给你一个长度为nnn的数组,对于里面每一个数求出数组里有多少个数是这个数的约数[除了这个数之外] 解决问题: 逆向思维去枚举质数. acwing1293 #include <bits/ ...

  4. BZOJ 2137 submultiple(约数,拉格朗日插值求自然数k次幂和)【BZOJ 修复工程】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2137 是 hydro 的 BZOJ ...

  5. SDOI2015 约数个数和(莫比乌斯反演经典、双上限整除分块)超详细笔记

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 AcWing 1358. 约数个数和(莫比乌斯反演经典.双上限整除分块) #include <c ...

  6. 【数学专题】约数个数与欧拉函数

    整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...

  7. 0x32.数学知识 - 约数

    目录 一.约数 定义 算术基本定理的推论 求NNN的正约数集合 - 试除法 求1~N每个数的正约数集合 - 倍数法 AcWing198. 反素数 二.最大公约数 最大公约数与最大公倍数 更相减损术 l ...

  8. 【c语言】蓝桥杯算法提高 约数个数

    问题描述 输入一个正整数N (1 样例输入 12 样例输出 6 样例说明 12的约数包括:1,2,3,4,6,12.共6个 #include<stdio.h> #include<ma ...

  9. POJ 2480 (约数+欧拉函数)

    题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...

  10. [SDOI2015]约数个数和【莫比乌斯反演】

    [SDOI2015]约数个数和 题意:\(d(x)\)为\(x\)的约数个数,求\(\sum_{i=1}^n\sum{j=1}^md(ij)\) 由结论得\[ans=\sum_{i=1}^n\sum_ ...

最新文章

  1. Sprint(第十天11.23)
  2. java万年历计算法定节假日,java获取中国节假日
  3. JSON语法之JSON 数值
  4. 移动端的注册登录设计灵感!
  5. Mysql drop table 原理_mysql事务的实现原理
  6. 使用struts2中默认的拦截器以及自定义拦截器
  7. C#Socket客户端
  8. windows局域网传文件5种常用方法
  9. 我看过的安全方面的好文章
  10. hbase scan超时设置_hbase scan limit 10
  11. AdaBoost 人脸检测介绍(5) : AdaBoost算法的误差界限
  12. 图画日记怎么画_一年级数学图画日记
  13. springcloud入门——config分布式配置中心
  14. ONLYOFFICE权限开发之二
  15. Leetcode力扣 MySQL数据库 1132 报告的记录II
  16. 好书分享--生命3.0 人工智能时代人类的进化与重生
  17. 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
  18. 什么是固态硬盘?它有什么好处?
  19. 赵小楼《天道》《遥远的救世主》深度解析(57)“此生得你红颜知己足矣”丁元英和芮小丹终于在一起
  20. 一款超好用的开源密码管理器?

热门文章

  1. cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
  2. 【转载】网络视频企业探索盈利模式 PPS研发新展示系统
  3. Xilinx SDK中分配变量的存储地址
  4. C++实现字符串和整数之间的相互转换
  5. java提供两种处理异常的机制_浅析Java异常处理机制
  6. python 实现str list array tuple的互换以及join函数的使用
  7. 图书馆座位预定系统开发
  8. Git 远程分支的pull与push
  9. 编译可在Android上运行的qemu user mode
  10. 在LINUX终端和VIM下复制粘贴