zoukankan      html  css  js  c++  java
  • BZOJ 1053

    题目 BZOJ1053 反素数

    [原题传送门](https://www.lydsy.com/JudgeOnline/problem.php?id=1053)

    题目分析

    那么关于这道题,首先来了解一下这 $4$ 个引理(大家可以自己推一推这些引理):

    引理$1$:$left[1,N ight]$ 中最大的反素数,就是 $left[1,N ight]$ 中约数个数最多的数中最小的一个。

    引理$2$:$left[1,N ight]$ 中任何数的不同质因子不会超过 $10$ 个,且所有质因子的指数和不超过 $30$ 。

    引理$3$:$x$ 的质因子是连续的若干个最小的素数,并且指数单调递减。即:

    $ x = 2^{c_1} imes 3^{c_2} imes 5^{c_3} imes 7^{c_4} imes 11^{c_5} imes 13^{c_6} imes 17^{c_7} imes 19^{c_8} imes 23^{c_9} imes 29^{c_{10}}$,

    ({c_1} ≥ {c_2} ≥ {c_3} ≥ cdots ≥ {c_{10}} ≥ 0)

    Code:

    ```cpp #include #define ll long long using namespace std; int n,ans=1,num=1; int p[15]={1,2,3,5,7,11,13,17,19,23,29,31}; void dfs(int k,ll now,int cnt,int last) { if(k==11) { if(now>ans&&cnt>num){ans=now;num=cnt;} if(now<=ans&&cnt>=num){ans=now;num=cnt;} return; } int s=1; for(int i=0;i<=last;++i) { dfs(k+1,now*s,cnt*(i+1),i); s*=p[k]; if(now*s>n)break; } } int main() { scanf("%d",&n); dfs(1,1,1,15); printf("%d",ans); return 0; } ```
  • 相关阅读:
    数据清洗
    JAVA多线程三种实现方式
    QT-4.8.6 编译配置过程
    qt 编译问题总结
    [转载]tslib1.4与Qt4.8.6的交叉编译与移植
    STC12C5A60S2 @ 22.0184Mhz 精确延时
    STC12C5A60S2 双串口通信
    C# Bitmap 复制
    TextMate2 最新版下载及源码编译过程
    mac系统 PHP Nginx环境变量修改
  • 原文地址:https://www.cnblogs.com/p-z-y/p/10664091.html
Copyright © 2011-2022 走看看