- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565622 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174909
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
|
2019第十届蓝桥杯B组决赛题解第四题 2 M2 o, y# ]: S2 X0 y
$ z7 l; n3 b7 |7 ^题意: 寻找有100个约数的最小数
5 D7 m# l* t+ {4 O思路: 本质上就是用了素因子分解,假设分解出来的素因子有4种,分别有x1个,x2个,x3个,x4个,第i种因子可以选0个或者1个或者2个或者···或者xi个,那么因子总数为(x1+1)*(x2+1)*(x3+1)*(x4+1): k% p- |8 K; \
0 ~/ X/ k/ M7 a: ^! D
结果:45360) n* X8 r$ ?$ \5 B
. J+ ]) |1 [" R1 q/ Z: N0 e. [代码:
3 }; t+ k6 A/ j3 x
' Y% ~( m; a4 Q#include<bits/stdc++.h>, x: r( C( X/ B* J( d
#define mem(a,b) memset(a,b,sizeof(a))$ Q. @. M! `1 A
using namespace std;
, |3 [: Q6 f2 \; _: i+ Ptypedef long long ll;
7 z. |3 T3 a5 \ Cconst int inf = 0x3f3f3f3f;! F' K4 i( K( C6 }3 U6 _# ~' i: J1 l; ~
const int maxn = 3e5+55555;- \9 s6 P0 h* v0 H: Z7 Q
const ll mod = 998244353;
8 R/ d( r t: _. ?3 N# V8 S' Cconst double eps = 1e-7;% n7 D& [* G+ _
* }' K$ G* b" ~4 Y0 p0 r
bool vis[123456];8 X7 M4 P2 I z3 l" I( r
vector<int>prime;
% M* v# A: r4 V+ u% @3 @- h; Z V- E3 p1 x; Q4 h
void init() { //素数筛; k M/ n5 [9 D
for(int i = 2;i<= 30000;i++) {
2 @( k$ L$ S/ v: v' W4 A if(!vis) {
6 y+ B8 p2 V3 n% h. s for(int j = i*i;j<= 30000;j+= i) {1 n0 S# t. s9 D4 e9 X5 k( `; n! V
vis[j] = true;7 [6 I4 j0 e3 q
}
9 o2 N8 ~/ Z: Z& K }
3 t( g" r, K9 `3 |& h, ] K8 u }' {! e1 q& k* K/ J' y5 c
for(int i = 2;i<= 2019;i++) {: k& v9 ]% Y) V! }8 `* @
if(!vis) prime.push_back(i);
# ^: d" c" T' ~/ ~3 N }( f/ s7 r8 j* Y, L
return ;
. E8 Z- E! `' ~" ?1 Y5 b5 {}! _' K ?: h0 V
7 f" a3 [% m5 @' ^3 u$ C- i, Kint cal(int x) { * U# G; T$ U1 G' G
int num[123];; Y! ?" |" z" s: f' w/ k# c! W; O0 t
mem(num,0);" w8 |: z8 M P# m2 l7 [
! N9 Z7 k7 E' B% Y- y
int k = prime.size(),cnt = 0;; H! X- F" q# x8 J
for(int i = 0;i< k;i++) { // 分解素因子( ~8 w1 T8 [8 i; Q
if(x%prime == 0) {8 l9 R* C. g4 v& n' }( c
cnt++;" Q. \' D0 Z0 P4 h& A: j+ A3 ^( M
while(x%prime == 0) {
" P; b7 x0 O6 X x/= prime;! w" w) _8 f z# k3 V, x1 a- x
num[cnt]++;' D7 Z1 e7 d( G1 x
}9 F, y- m+ I( j2 L1 x' w
}
8 E: M: A; a, F6 v }1 }( Y6 ~, E1 T6 o* v
int ans = 1;
; U5 O a3 q# |/ I' E for(int i = 1;i<= cnt;i++) { //计算因子总数 V: g% F) F- \# o
ans*= (num+1);% @! y. p4 @ G. W( B# Y$ _; x
}& l+ k N& o- H6 d
return ans;
" N6 F& D$ P' s}8 b0 `) c: r) e; a+ C0 h C
9 R& a& q( }5 |: o
int main() {
- ?5 W* u* W/ r+ p- M init();3 F7 k7 S: A2 J
for(int i = 99;i<= 1000000;i++) {( n0 {" u) m2 l% ^
if(cal(i) == 100) {
0 ~7 X# H+ X0 Q) v3 h/ M$ g cout<<i<<endl;
! p5 d1 a1 |$ Q& C3 D break;
; n2 Q/ B8 Q* P }
5 q1 k. _) E! S' E }/ x: |% b- e0 E/ W+ o, P9 P4 ?
8 C! l& t/ `9 \1 K! \, c, _" D1 ~
return 0;
* V1 c$ v0 { I7 O5 x}
) Z }4 j' T5 @& r$ A1 ^3 k8 E---------------------
. ~) v! a: U0 [/ L作者:nka_kun 3 j& I: O& \- L+ g' q! ~# T
来源:CSDN
& F& e) P, z# u' l; q: f- s1 E9 Z) c1 n6 K7 }# ~" g: ]& ?
& B! O( d' s$ {8 G4 H: }! p( U& c( q3 v
|
zan
|