QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2161|回复: 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组决赛题解第四题
    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
    转播转播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-7-29 07:50 , Processed in 0.353313 second(s), 51 queries .

    回顶部