「算法」素数筛、分解质因数

素数筛、分解质因数

  • 枚举筛法
    • 原始筛法
    • 优化
  • 分解质因数
    • 朴素算法
    • 优化
  • Eratosthenes筛法(埃拉托斯特尼筛法)
  • 线性筛法(欧拉筛法)

eyJ2ZXJzaW9uIjoxLjMsImZlYXR1cmVzIjp7ImxvY2F0aW9uIjp7InJvb20iOnRydWUsIm91dHNpZGUiOnRydWUsIndvcmxkIjp0cnVlfX0sInN0b3JlcyI6eyJ3b29kIjo2OTA4NCwic2NhbGVzIjo4OCwiYmFpdCI6MjI1NSwiZnVyIjoxMTg4OCwibWVhdCI6NTYyNiwidGVldGgiOjgzLCJjdXJlZCBtZWF0IjoxNzU1LCJjbG90aCI6MzEsImxlYXRoZXIiOjQ5MSwiYm9uZSBzcGVhciI6MTcsImwgYXJtb3VyIjoxLCJjaGFybSI6NywidG9yY2giOjM0LCJ3YXRlcnNraW4iOjEsInJ1Y2tzYWNrIjoxLCJjb21wYXNzIjoxLCJtZWRpY2luZSI6NCwiaXJvbiBzd29yZCI6NCwiaXJvbiI6OCwic3RlZWwgc3dvcmQiOjF9LCJjaGFyYWN0ZXIiOnsicGVya3MiOnsicHJlY2lzZSI6dHJ1ZSwiZXZhc2l2ZSI6dHJ1ZSwiYmFyYmFyaWFuIjp0cnVlfSwic3RhcnZlZCI6Mn0sImluY29tZSI6eyJnYXRoZXJlciI6eyJkZWxheSI6MTAsInN0b3JlcyI6eyJ3b29kIjowfSwidGltZUxlZnQiOjJ9LCJidWlsZGVyIjp7ImRlbGF5IjoxMCwic3RvcmVzIjp7Indvb2QiOjJ9LCJ0aW1lTGVmdCI6Mn0sImNoYXJjdXRpZXIiOnsiZGVsYXkiOjEwLCJzdG9yZXMiOnsibWVhdCI6MCwid29vZCI6MCwiY3VyZWQgbWVhdCI6MH0sInRpbWVMZWZ0IjozfSwiaHVudGVyIjp7ImRlbGF5IjoxMCwic3RvcmVzIjp7ImZ1ciI6MTEsIm1lYXQiOjExfSwidGltZUxlZnQiOjN9LCJ0cmFwcGVyIjp7ImRlbGF5IjoxMCwic3RvcmVzIjp7Im1lYXQiOi0xLCJiYWl0IjoxfSwidGltZUxlZnQiOjN9LCJ0YW5uZXIiOnsiZGVsYXkiOjEwLCJzdG9yZXMiOnsiZnVyIjowLCJsZWF0aGVyIjowfSwidGltZUxlZnQiOjN9fSwidGltZXJzIjp7fSwiZ2FtZSI6eyJidWlsZGVyIjp7ImxldmVsIjo0fSwidGVtcGVyYXR1cmUiOnsidmFsdWUiOjIsInRleHQiOiLlvojlrpzkuroifSwiZmlyZSI6eyJ2YWx1ZSI6MiwidGV4dCI6IuWGkuWHuueBq+iLlyJ9LCJidWlsZGluZ3MiOnsidHJhcCI6MTAsImNhcnQiOjEsImh1dCI6MjAsInRyYWRpbmcgcG9zdCI6MSwic21va2Vob3VzZSI6MSwibG9kZ2UiOjEsInRhbm5lcnkiOjEsIndvcmtzaG9wIjoxfSwicG9wdWxhdGlvbiI6MjMsIndvcmtlcnMiOnsiY2hhcmN1dGllciI6MCwiaHVudGVyIjoyMiwidHJhcHBlciI6MSwidGFubmVyIjowfSwib3V0c2lkZSI6eyJzZWVuRm9yZXN0Ijp0cnVlfSwid29ybGQiOnsibWFwIjpbWyIsIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiWSIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIl0sWyIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIl0sWyIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7Il0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIkYiLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIjsiLCI7IiwiOyIsIjsiLCIuIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCI7Il0sWyI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIkYiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJZIiwiLCIsIiwiLCI7IiwiOyIsIjsiLCIuIiwiLiIsIi4iLCI7IiwiLiIsIi4iLCIuIl0sWyI7IiwiOyIsIjsiLCI7IiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLiIsIi4iLCIuIl0sWyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCJZIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIuIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCIuIiwiLiIsIi4iLCIuIl0sWyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIlkiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIkIiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIsIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiQiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIkgiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCJZIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCJGIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiQiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIi4iLCIuIiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiQiIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIi4iLCIuIiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIi4iLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiQiIsIiwiLCIsIiwiSCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiWSIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCJZIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIjsiLCI7IiwiOyIsIjsiLCJPIiwiOyIsIk8iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIkIiLCIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiSCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJIIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiWSIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJZIl0sWyIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIiwiLCIuIiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIiwiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIiwiLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCJPIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiUCIsIiwiLCIsIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIl0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiTyIsIi4iLCIuIiwiViIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCI7IiwiIyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIkYiLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIl0sWyIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIk8iLCIsIiwiLiIsIk8iLCIuIiwiLiIsIkghIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiUCIsIiMiLCIjIiwiQSIsIkghIiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiTyIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCJJIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiTSIsIi4iLCJPIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiOyIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIjsiLCI7IiwiOyIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiViIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJWIiwiOyIsIjsiLCIsIiwiQyIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiRiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIjsiLCI7IiwiOyIsIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiWSIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiQiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCI7IiwiOyIsIjsiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIjsiLCI7IiwiOyIsIjsiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIjsiLCI7IiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJCIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiWSIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiSCIsIiwiLCIsIiwiLCIsIlkiXSxbIjsiLCI7IiwiLCIsIiwiLCIsIiwiWSIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiSCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCJPIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIiwiLCJZIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiSCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIk8iLCIsIiwiLCIsIlMiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIkIiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiWSIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCJZIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIlkiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCJCIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiVyIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiSCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIlkiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCJZIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIjsiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiWSIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIjsiLCIsIiwiLCIsIiwiXSxbIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiOyIsIjsiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCI7IiwiOyIsIjsiXSxbIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCI7IiwiOyIsIjsiXSxbIjsiLCIuIiwiLiIsIi4iLCIuIiwiLiIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLiIsIi4iLCIuIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIiwiLCIsIjsiXV0sIm1hc2siOltbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbXSxbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXSxbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWVdLFtudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXSxbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZV0sW251bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWVdLFtudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXSxbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWVdLFtudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLHRydWUsdHJ1ZSx0cnVlLHRydWVdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdLFtdXX0sInRoaWV2ZXMiOjIsInN0b2xlbiI6eyJ3b29kIjo0ODkwLCJmdXIiOjI0NDUsIm1lYXQiOjI0NDV9fSwicGxheVN0YXRzIjp7fSwicHJldmlvdXMiOnt9LCJjb25maWciOnsiaHlwZXJNb2RlIjp0cnVlLCJsaWdodHNPZmYiOnRydWV9LCJjb29sZG93biI6e30sImN1cmVkIG1lYXQiOjYsImNoYXJtIjowLCJ0b3JjaCI6MCwid2F0ZXJza2luIjowLCJib25lIHNwZWFyIjo1LCJydWNrc2FjayI6MCwibCBhcm1vdXIiOjAsIm1lZGljaW5lIjowLCJpcm9uIHN3b3JkIjowLCJvdXRmaXQiOnsiYm9uZSBzcGVhciI6NSwiY3VyZWQgbWVhdCI6NiwidG9yY2giOjAsImlyb24gc3dvcmQiOjAsInN0ZWVsIHN3b3JkIjowLCJsZWF0aGVyIjowLCJ0ZWV0aCI6MH0sInN0ZWVsIHN3b3JkIjowfQ==

枚举筛法

 我们知道素数即为因数只有 1 1 1和它本身的数,换种方式来看,意思就是在 2 2 2~ n − 1 n-1 n1的范围中没有一个它的因数


原始筛法

 从 2 2 2 n − 1 n-1 n1枚举

for (int i = 2; i <= n; i ++) {
	bool flag = true;
	for (int j = 2; j < i; j ++) {
		if (i % j == 0) {
			flag = false;
			break;
		}
	}
	if (flag) {
		Prime[++ cnt] = i;
	}
}

 最后 c n t cnt cnt即为素数个数, P r i m e Prime Prime存的就是素数


优化

 实际上,除了完全平方数以外,因数都是成对出现的,所以如果我们判断了 i % j = = 0 i\%j==0 i%j==0还没跳出循环,就不再需要判断 i % ( i / j ) i\%(i/j) i%(i/j)是否为0了,我们用反证法证明一下

证明
 假设存在 i % j = 0 i\%j=0 i%j=0 j > i / 2 j>i/2 j>i/2
   ∴ ∴ 一定存在 i % ( i / j ) = 0 i\%(i/j)=0 i%(i/j)=0 j < i / 2 jj<i/2
   ∴ ∴ 之前一定遍历过
 得证

for (int i = 2; i <= n; i ++) {
	bool flag = true;
	for (int j = 2; j * j <= i; j ++) { //这里要取等了,有完全平方数
		if (i % j == 0) {
			flag = false;
			break;
		}
	}
	if (flag) {
		Prime[++ cnt] = i;
	}
}

分解质因数

朴素算法

就不解释了。。。

for (int i = 2; i <= n; i ++) {
	if (n % i == 0) {
		bool flag = true;
		for (int j = 2; j < i; j ++) {
			if (i % j == 0) {
				flag = false;
				break;
			}
		}
		while (n % i == 0 && flag) {
			n /= i;
			Prime[++ cnt] = i;
		}
	}
}

优化

 还有一个很严重的问题,我们真的需要去判断 i i i是否为质数吗?
 其实不用

证明
 假设存在 i i i,使得 n % i = = 0 n\%i==0 n%i==0 i i i为合数
   ∴ ∴ 存在 i i i的因数 j j j
   ∵ ∵ 我们在之前已经发现 j j j是n的因数,已经使得 n % j ! = 0 n\%j!=0 n%j!=0
   ∴ ∴ n % i = = 0 n\%i==0 n%i==0必然不存在
 得证

for (int i = 2; i <= n; i ++) {
	while (n % i == 0) {
		Prime[++ cnt] = i;
		n /= i;
	}
}

Eratosthenes筛法(埃拉托斯特尼筛法)

 我们发现,其实对于 2 2 2来说,我们持续地判断了 i % 2 i\%2 i%2是否为 0 0 0,但是我们完全没有必要去判断偶数是否被 2 2 2整除
 放大了来看,对于素数来说我们并不想去判断它有无因数,因为这样做大大降低了效率,我们可以选择去标记合数,怎么标记呢?
 对于每一个素数而言,所有它的倍数都是合数
 同分解质因数一样,所有在此之前没有被标记的数都是素数

void Eratosthenes_sieve() {
	for (int i = 2; i <= n; i ++) {
		if (flag[i]) continue;	//它是否被标记过
		Prime[++ cnt] = i;
		for (int j = i; j <= n / i; j ++) {
			flag[j * i] = true;
		}
	}
}

线性筛法(欧拉筛法)

 其实 6 = 2 ∗ 3 6=2*3 6=23,所以 6 6 6被重复标记了两次,所以有些数被标记了很多次
 所以我们标记所有已发现的素数它们的 i i i倍为合数

void line_sieve(int n) {
	for (int i = 2; i <= n; i ++) {
		if (!flag[i]) {
			Prime[++ cnt] = i;
		}
		for (int j = 1; j <= cnt && Prime[j] * i <= n; j ++) {
			flag[i * Prime[j]] = true;
			if(i % Prime[j] == 0) {
				break;
			}
		}
	}
}

你可能感兴趣的:(算法,c++,素数筛)