QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2149|回复: 0
打印 上一主题 下一主题

2019第十届蓝桥杯B组决赛题解第四题

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2019-6-28 15:53 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    2019第十届蓝桥杯B组决赛题解第四题
    3 G# ~6 y3 k6 B8 V$ Y

    ; q* }2 H/ g* T题意:  寻找有100个约数的最小数" H' _9 R4 S7 o! f! Y
    思路:  本质上就是用了素因子分解,假设分解出来的素因子有4种,分别有x1个,x2个,x3个,x4个,第i种因子可以选0个或者1个或者2个或者···或者xi个,那么因子总数为(x1+1)*(x2+1)*(x3+1)*(x4+1)
    / b$ ]4 B) m0 b7 _; |- o6 \/ P3 O$ K1 s
    结果:45360; E9 }$ W! Y0 Q% v1 _; e9 U$ q

    0 I3 g( n" L/ W( X4 f6 b代码:" I; y/ w: E/ a5 L8 L6 x# m5 |
    5 g* l7 i. O+ J+ N' Q; b( h; s" _
    #include<bits/stdc++.h>
    ( O  k/ J/ V& o8 h$ P8 O#define mem(a,b) memset(a,b,sizeof(a))
    + c% a# ^5 K1 j9 ~8 V" rusing namespace std;
    % `# C: d& Y: f$ Etypedef long long ll;. }. k0 \! C, B2 q- {
    const int inf = 0x3f3f3f3f;
    1 n0 ^( v! s2 e3 z$ s9 F& gconst int maxn = 3e5+55555;; U5 _5 g7 b5 y
    const ll mod = 998244353;
    ( |& [' W, S; _: c6 pconst double eps = 1e-7;& g9 l6 f% L' Z: r  S1 y) u

    ' b1 A2 [* D, K8 cbool vis[123456];( M3 q, |5 S% Q. b
    vector<int>prime;3 j5 G& c; N3 W2 ~' `3 |, K
    ) Y$ }; j, F! e* y( o; ^
    void init() { //素数筛! [/ t' y! f$ K4 a' u# P
        for(int i = 2;i<= 30000;i++) {8 ~8 n. o+ W7 c4 H
            if(!vis) {
    + j+ h$ l/ a$ H. c( F$ c            for(int j = i*i;j<= 30000;j+= i) {
    ( A' B9 P# P/ Q4 ], I: x* O                vis[j] = true;
    5 x8 ?8 ^. z6 `' b) `' u            }' o+ X6 V1 K; _/ u
            }
    # J! W6 U% F5 F4 F    }
    5 A6 |4 Q  S1 I; H  `- r    for(int i = 2;i<= 2019;i++) {3 F* U1 ]# I% k; Q
            if(!vis) prime.push_back(i);
    : Q: E8 ?6 s" ~/ N( e    }
    . J& S- T* ]8 I, p, [    return ;. Q! k2 ?  V8 S. x- [& N
    }
    $ q, f/ h* a0 U
    # a+ W- S6 \  e$ A  ], Uint cal(int x) { % d9 u& t6 W# M' i1 r% O( O( j
        int num[123];
    ) b" d9 Z) h# B4 Q2 ^% ?/ ]9 V( O    mem(num,0);
    * u7 d$ M8 M/ }; K. z# R9 @9 ?( s" g/ f1 i1 q4 ]$ O
        int k = prime.size(),cnt = 0;5 S2 @" L6 r+ H: }1 R
        for(int i = 0;i< k;i++) { // 分解素因子
    ( N  k" |: O' [- C4 ^        if(x%prime == 0) {) _7 h9 j) k" N
                cnt++;5 ?1 E1 J4 b& R9 e# {
                while(x%prime == 0) {
    ( A+ i7 T) a% c) O- a, y                x/= prime;
    + ^! m. \+ \; q' d) C* N                num[cnt]++;* i5 Y: \" I" \. Z, [" `
                }: |5 j1 r+ @; l4 H
            }1 ]1 q' e. F2 }6 I6 J  `. n
        }8 q2 J+ {& M! _8 H. s1 _
        int ans = 1;. o6 C: a) a" S( ?2 t7 Z
        for(int i = 1;i<= cnt;i++) { //计算因子总数  ^) f2 X; B) M8 w+ I' W) `
            ans*= (num+1);
    $ E9 k0 A2 O5 m5 W# D    }7 A; N- c3 k7 d. b; {
        return ans;
    8 O( X& Z- s) z4 x$ b2 ~}% o; P! N  N* q& z

    ! K5 @! G/ K6 q% cint main() {' Y5 R* l  B7 c3 G4 c/ f0 e! |* s# Q
        init();
    * P2 Q9 j/ h0 l& }1 U5 l    for(int i = 99;i<= 1000000;i++) {8 ~4 [( g) g) s3 D$ m- w0 |
            if(cal(i) == 100) {. c4 H8 r6 H6 u
                cout<<i<<endl;% Q4 ^7 `2 d9 N& v2 Y$ N
                break;) J4 d9 Y' c, C2 ^3 ?
            }$ k! q/ b0 A9 m7 T7 ~7 u
        }% x# ?( t! u0 Q: t) `
      w6 [/ p* `; p- C5 T! X' f
        return 0;  i- m( \( r6 W8 ]/ T
    }
    * b+ T, s0 @1 Z6 R  P& r: j---------------------   \) U  `+ \% b/ }3 p5 E* E
    作者:nka_kun % ]% Q/ ~7 ~( z
    来源:CSDN ( B3 O- R8 a+ p* A* b

    0 m# p/ x% {- E7 B' ~% a$ q5 o0 }3 T3 _

    4 \( x  F" s/ j
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-16 17:27 , Processed in 0.362521 second(s), 50 queries .

    回顶部