2043. 【2016.5.21普及组模拟】约数国王(A king)
2016-07-09 07:58
357 查看
题目描述
数学的王国里,有一些约数国王……约数国王的定义是这样的:一个大于1的整数n,如果它约数的个数比1~n-1的每个整数的约数的个数都要多,那么我们就称它为约数国王。聪明的小明在奥数书上认识了它们,于是产生了一个问题:他想知道L到R之间一共有多少个约数国王?它们分别又是谁?题解:
这一题我只有50。
100%:根据之前的“(q1+1)(q2+1)(q3+1)…(qn+1)”,很容易得出状态转移方程f(x)(y)=f(x-1)(y/(k+1))*p_x^k (1<=k<=y)(k+1|y),再优化一下就AC。
代码:
var
a:array[1..100000000] of longint;
b:array[1..500000] of longint;
l,r,max,ans:longint;
i,j:longint;
procedure main;
begin
a[1]:=1;
for i:=2 to r do a[i]:=2;
for i:=2 to trunc(sqrt(r)) do
for j:=i to r div i do
if i=j then inc(a[i*j])
else
a[i*j]:=a[i*j]+2;
end;
begin
readln(l,r);
main;
max:=1;
for i:=2 to r do
if a[i]>max then
begin
if i>=l then begin inc(ans);b[ans]:=i;end;
max:=a[i];
end;
write(ans);
for i:=1 to ans do
write(' ',b[i]);
writeln;
end.
相关文章推荐
- C++ hdoj 2043 密码
- 2043 Problem F 小白鼠排队
- FrameLayout(帧布局)
- sql中where 1=1和 0=1 的作用
- 2042. 【2016.5.21普及组模拟】SuperPow
- 【NOI2002】银河英雄说
- 2041. 【2016.5.21普及组模拟】魔方工厂
- 【2016.5.21普及组模拟】博物馆
- Java千百问_08JDK详解(016)_AttachAPI是什么
- 小sugar呀——归并排序
- 1328. Party (Standard IO)
- 【编程马拉松】【024-放苹果】
- 企业信息安全之社工学审计
- Android平台上二维码的生成与扫描
- 拉力赛
- python socket和socketserver
- MSML 云计算深度学习平台
- (转)jQuery插件开发精品教程,让你的jQuery提升一个台阶
- 遥控车
- 6.3.1 自己动手写一个windows调试器