20亿以内哪个数的约数个数最多,个数是多少?

混蛋的百度吞了我好几条答案。

于是我在这里发下:是1536

这里在贴一下部分评测数据,为什么是部分呢?因为是在很多台电脑上跑的,丢了一些,但是肯定跑全了!答案是没有错的。嗯,有好几个数的约数个数都是1536。

额,我还是先贴一下评测代码吧。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 15
int ans=0;
int p[N],cnt;
int main()
{
	int i,j,k;
	for(i=1029188160;i<=2000000000;i++)
	{
		cnt=0;
		k=i;
		for(j=2;j*j<=k;j++)
		{
			if(k%j==0)
			{
				p[++cnt]=0;
				while(k%j==0)
				{
					p[cnt]++;
					k/=j;
				}
			}
		}
		if(k>1)p[++cnt]=1;
		int temp=1;
		for(j=1;j<=cnt;j++)
		{
			temp*=(p[j]+1);
		}
		if(ans<temp)
		{
			printf("%d : %d\n",i,ans=temp);
		}
		if(i%10000000==0)printf("%d at %d\n",temp,i);
	}
	printf("%d\n",ans);
	system("pause");
	return 0;
}

1029188160 : 1344

128 at 1030000000

176 at 1040000000

288 at 1050000000

144 at 1060000000

128 at 1070000000

320 at 1080000000

128 at 1090000000

162 at 1100000000

1102701600 : 1440

256 at 1110000000

192 at 1120000000

128 at 1130000000

288 at 1140000000

144 at 1150000000

160 at 1160000000

384 at 1170000000

144 at 1180000000

256 at 1190000000

198 at 1200000000

1200000000 : 198

198 at 1200000000

1200000528 : 240

1200001440 : 384

1200003840 : 432

1200009600 : 768

1200119760 : 960

1200719520 : 1152

192 at 1210000000

1210809600 : 1296

144 at 1220000000

1225224000 : 1344

256 at 1230000000

1232431200 : 1440

160 at 1240000000

88 at 1250000000

432 at 1260000000

128 at 1270000000

120 at 1280000000

256 at 1290000000

162 at 1300000000

1400000000 : 180

180 at 1400000000

1400000085 : 192

1400000448 : 224

1400000616 : 288

1400001408 : 480

1400011200 : 1008

1401079680 : 1024

1401472800 : 1152

1403438400 : 1260

1409007600 : 1440

256 at 1410000000

144 at 1420000000

256 at 1430000000

288 at 1440000000

144 at 1450000000

144 at 1460000000

384 at 1470000000

1470268800 : 1536

160 at 1480000000

128 at 1490000000

180 at 1500000000

1500000000 : 180

180 at 1500000000

1500000480 : 288

1500001360 : 320

1500001800 : 384

1500003120 : 480

1500004800 : 504

1500012000 : 768

1500127200 : 864

1500206400 : 1008

1500899400 : 1152

1504198080 : 1344

128 at 1510000000

176 at 1520000000

384 at 1530000000

288 at 1540000000

1543782240 : 1440

144 at 1550000000

320 at 1560000000

128 at 1570000000

144 at 1580000000

256 at 1590000000

117 at 1600000000

256 at 1610000000

360 at 1620000000

128 at 1630000000

160 at 1640000000

1643241600 : 1536

288 at 1650000000

144 at 1660000000

128 at 1670000000

352 at 1680000000

192 at 1690000000

162 at 1700000000

1700000000 : 162

162 at 1700000000

1700000064 : 168

1700000120 : 192

1700000610 : 256

1700000640 : 384

1700005440 : 448

1700006000 : 480

1700013600 : 648

1700028000 : 672

1700047440 : 720

1700075520 : 768

1700099280 : 800

1700206200 : 960

1700233920 : 1008

1700899200 : 1152

1706443200 : 1176

1709187480 : 1280

384 at 1710000000

1715313600 : 1512

160 at 1720000000

128 at 1730000000

288 at 1740000000

1745944200 : 1536

160 at 1750000000

192 at 1760000000

256 at 1770000000

144 at 1780000000

128 at 1790000000

270 at 1800000000

1800000000 : 270

270 at 1800000000

1800001500 : 288

1800001632 : 384

1800002160 : 480

1800005760 : 512

1800009120 : 576

1800014400 : 840

1800136800 : 864

1800152640 : 896

1800179640 : 960

1800691200 : 1080

1801079280 : 1280

1807565760 : 1344

128 at 1810000000

1816214400 : 1440

288 at 1820000000

256 at 1830000000

1837836000 : 1536

176 at 1840000000

144 at 1850000000

288 at 1860000000

256 at 1870000000

160 at 1880000000

512 at 1890000000

162 at 1900000000

128 at 1910000000

224 at 1920000000

128 at 1930000000

144 at 1940000000

288 at 1950000000

240 at 1960000000

128 at 1970000000

432 at 1980000000

128 at 1990000000

110 at 2000000000

1536

复制去Google翻译翻译结果

时间: 2024-11-09 02:02:30

20亿以内哪个数的约数个数最多,个数是多少?的相关文章

Js对象查找字符个数及出现的最多个数

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Js对象查找字符个数及出现的最多个数</title> 6 </head> 7 <body> 8 9 </body> 10 </html> 11 <script> 12 var s

只用2GB内存在20亿个整数中找到出现次数最多的数

[题目] 有一个包含20亿个全是32位整数的大文件,在其中找到出现次数最多的数. [要求] 内存限制为2GB. [解答] 想要在很多整数中找到出现次数最多的数,通常的做法是使用哈希表对出现的每一个数做词频统计,哈希表的key是某一个整数,value是这个数出现的次数.就本题来说,一共有20亿个数,哪怕只是一个数出现了20亿次,用32位的整数也可以表示其出现的次数而不会产生溢出,所以哈希表的key需要占用4B,value也是4B.那么哈希表的一条记录(key,value)需要占用8B,当哈希表记录

编程题:统计1~20之间不能被3整除的数的个数并输出这些数

以下程序是用break和continue语句来实现的. #include<stdio.h> void main() { int n,s; for(n=1,s=0;n<=20;n=n+1) { if(n%3==0) continue; printf("%d\t",n); s=s+1; } printf("\ntotal:%d\n",s); } 算法分析与流程图: 运行结果: 编程题:统计1~20之间不能被3整除的数的个数并输出这些数,布布扣,bubu

算术基本定理 求一个数的约数个数

算术基本定理  求一个数的约数个数 算术基本定理: 分解素因数:n=(p1^k1)*(p2^k2)*...*(pn*kn).(分解方式唯一) n的约数个数为cnt(n)=(1+k1)*(1+k2)*...*(1+kn). bool isprime[maxn]; vector<int> prime; void play_prime() { memset(isprime,1,sizeof(isprime)); isprime[1]=0; for(int i=2;i<maxn;i++){ if

数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)

线性筛 线性筛在数论中起着至关重要的作用,可以大大降低求解一些问题的时间复杂度,使用线性筛有个前提(除了素数筛)所求函数必须是数论上定义的积性函数,即对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b),在数论上就称它为积性函数,若a,b不互质也满足的话则称作完全积性函数,下面说明每个筛子是怎么筛的. 最基础的是素数筛,其它三个筛都是以素数筛为前提 素数筛 void get_prime() { int pnum = 0; for(int i = 2;

【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?

这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如 [面试现场]如何判断一个数是否在40亿个整数中? [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. 20亿级别 面试官:如果我给你 2GB 的内存,并且给你 20 亿个 int 型整数,让你来找出次数出现最多的数,你会怎么做? 小秋:(嗯?怎么感觉和之前的那道判断一个数是否出现在这 40 亿个整数中有点一样?可是,如果还是采用 bitmap 算法的话,好像无法统计一个数出现的次数,只能判断一个数是

N个数的数组求N-1个数组合乘积最大的一组

1 /* 2 编程之美题,给定N个数的数组,只能使用乘法,不使用除法,找出N-1个数的乘积最大的一组,有两种方法,方法一:采用两个数组分别保存从左向右 3 和从又向左的两个乘积值,然后在扫描一次,求出最大乘积,空间换时间的方法. 4 方法二:通过分析这些数的性质,看有多少正数,多少负数,多少0 5 (1)如果有2个或2个以上的0,则返回0 6 (2)如果有一个0,则看去除0后的乘积为正数还是负数,如果是负数,最大值为0,返回0(即当有一个0时,看负数奇偶情况,如果负数个数是奇数,则返回0) 7

LightOJ 1038 - Race to 1 Again (给一个数,用这个数的因数除以这个数,直到为1时,求除的次数的期望。)(概率)

题意:http://www.lightoj.com/volume_showproblem.php?problem=1038 题意:给一个数,用这个数的因数除以这个数,直到为1时,求除的次数的期望. 设一个数的约数有M个,E[n] = (E[a[1]]+1)/M+(E[a[2]]+1)/M+...+(E[a[M]]+1)/M 一个数最大的约数是它自己. 则有,E[n] = (E[a[1]]+1)/M+(E[a[2]]+1)/M+...+(E[n]+1)/M (M-1)*E[n]=E[a[1]]+E

C语言:输入一个数,输出比这个数小的所有素数,并求出个数。

//C语言:输入一个数,输出比这个数小的所有素数,并求出个数. 1 #include<conio.h> 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define MAX 100 5 int fun(int lim, int aa[MAX]) 6 { 7 int i, j,k=0; 8 for (i = 2; i <= lim; i++)//罗列每个数 9 { 10 for (j = 2; j < i; j++)//