zoj2562:搜索+数论(反素数)
题目大意:求n以内因子数量最多的数 n的范围为1e16
其实相当于求n以内最大的反素数。。。
由素数中的 算数基本原理
设d(a)为a的正因子的个数,则
d(n)=(a1+1)(a2+1).....*(an+1);
又由反素数的性质2:
p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=....
我们可以指定搜索策略和剪枝
详见代码和注释
#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<math.h>
using namespace std;
long long n;
long long a[]={,,,,,,,,,,,,,,};//这些素数全部乘积已经超过了1e16,所以不用再往下面乘了
long long ans,ans0;
void dfs(long long num,long long sum,long long limit,long long po)//limit 存储上一个素数的指数 相当于反素数性质中的t(i-1),由性质可知ti<=t(i-1)
{
if(num>n)
return;
if(sum==ans0)
{
ans=min(ans,num);
}
if(sum>ans0)
{
ans0=sum;
ans=num;
}
long long p=;
for(int i=;i<=limit;i++)
{
p*=a[po];
if(p*num>n)
break;
dfs(num*p,sum*(i+),i,po+);
}
return;
}
int main()
{
while(scanf("%lld",&n)!=EOF)
{
ans0=;
ans=;
if(n==)
{
puts("");
continue;
}
dfs(,,,);
cout<<ans<<endl;
}
return ;
}
zoj2562:搜索+数论(反素数)的更多相关文章
- ZOJ-2562 More Divisors 反素数
题意:给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最大的一个. 分析:反素数定义:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4 ...
- HDU 4542 小明系列故事——未知剩余系 (数论|反素数)
分析 kuangbin的blog已经讲的很好了,我做一点补充 1.当做x*y>z的比较时,如果x \(\ast\) y过大,可以写成x>z/y 2.分解质因数时选择用f[][0]保存质数, ...
- 【BZOJ1053】[HAOI2007]反素数 (搜索+数论)
\([POI2002][HAOI2007]\)反素数 题目描述 对于任何正整数x,其约数的个数记作\(g(x)\).例如\(g(1)=1.g(6)=4\). 如果某个正整数x满足:\(g(x)> ...
- hdu4542 && ZOJ2562(反素数)
反素数: 对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数. 有两个特点: 1.一个反素数的质因子必是从2开始的质数 2.如果,那么必有 最常见的问题如 ...
- 【zoj2562】反素数
题意:给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最小的一个.(1 <= n <= 10^16) 题目:http://acm.hust.edu. ...
- bzoj 1053: [HAOI2007]反素数ant 搜索
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1497 Solved: 821[Submit][Sta ...
- 【BZOJ1053】[HAOI2007]反素数(搜索)
[BZOJ1053][HAOI2007]反素数(搜索) 题面 BZOJ 洛谷 题解 大力猜一下用不了几个质因子,那么随便爆搜一下就好了. #include<iostream> #inclu ...
- zoj2562 反素数
/* 这题1 <= n <= 1016,暴力肯定是TLM,所以看了大牛求解小于N的反素数的算法,思路大致是这样的: 性质1:一个反素数的质因子一定是从2开始的若干个连续质数. 因此可以枚举 ...
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ...
随机推荐
- C#系列教程——switch定义及使用
代码如下: using System; class Switch_Test { static void Main() { Console.WriteLine("box sizes: 1=Sm ...
- 远程连接mysql
win系统下,连接别人的mysql或者让别人链接自己的mysql: 打开命令行cmd 进入mysql: mysql -u root -p mysql>use mysql; mysql>s ...
- [深入React] 5.MVC
react 是一种典型的MVC框架. 在jquery中,我们都是针对dom编程,由dom事件触发dom改变,MVC三层代码混在一起. 比如点击变颜色 $('#btn').click(function( ...
- Spark的日志配置
在測试spark计算时.将作业提交到yarn(模式–master yarn-cluster)上,想查看print到控制台这是imposible的.由于作业是提交到yarn的集群上,so 去yarn集群 ...
- [Angular 2] Using Array ...spread to enforce Pipe immutability
Pipes need a new reference or else they will not update their output. In this lesson you will use th ...
- jquery向下取整
var currentMoney =Math.round((_memberCurrentPoints/_pointVsMoney)*Math.pow(10,2))/Math.pow(10,2) * 2 ...
- UITableVIewcell中图片不能改变大小的原因
你有没没有发现,有时候把图片放进cell.imageView中时无法顺利改变大小呢? 其实根本原因是要在layoutSubviews重新配置一下,cell的布局里面默认有一个imageiView,同时 ...
- JS正则验证格式
function test() { var temp = document.getElementById("text1"); //对电子邮件的验证 var myreg = /^([ ...
- java下properties属性文件操作
package cn.stat.p1.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...
- [Leetcode][001] Two Sum (Java)
题目在这里: https://leetcode.com/problems/two-sum/ [标签]Array; Hash Table [个人分析] 这个题目,我感觉也可以算是空间换时间的例子.如果是 ...