zoukankan      html  css  js  c++  java
  • 寻找AP数

    题目背景

    正整数n是无穷的,但其中有些数有神奇的性质,我们给它个名字——AP数。

    题目描述

    对于一个数字i是AP数的充要条件是所有比它小的数的因数个数都没有i的因数个数多。比如6的因数是1 2 3 6 共计有4个因数。它就是一个AP数(1-5的因数个数不是2就是3)。我们题目的任务就是找到一个最大的,且不超过n的AP数。

    输入格式

    每个测试点可能拥有多组数据。

    对于每一行有一个n,如题目所描述

    输出格式

    对于每一行输出最大的且不超过n的AP数

    输入输出样例

    输入 #1
    1000
    输出 #1
    840

    说明/提示

    n<=15 0000 0000

    分析:

    这题要用到不少数学性质和证明,反正我记得这题我们老师讲了一下午,详细看https://www.luogu.org/problemnew/solution/P1820(话说这里面的题解(除了打表)好像都是我们班的。。。)

    CODE:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 using namespace std;
     5 long long int n,ap,fap;
     6 const int p[11]={0,2,3,5,7,11,13,17,19,23,29};
     7 void work(int k,long long x,int fx,int limit){
     8     if (k>n) return ;
     9     if (fx>fap&&x<=n) fap=fx,ap=x;
    10     if (x<ap&&fx==fap) ap=x;
    11     for (int i=1;i<=limit;++i){
    12         x*=p[k];
    13         if (x>n) break;
    14         work(k+1,x,fx*(i+1),i);
    15     }
    16 }
    17 int main(){
    18     while(scanf("%d",&n)!=EOF){
    19         ap=fap=0;
    20         work(1,1,1,20);
    21         cout<<ap<<endl;
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    CV 第十一课 Segmentation Localization Detection 下
    面经
    overfitting问题
    CV 第十一课 Segmentation Localization Detection 上
    CV 第十一课 Classification + Localization 中
    SVM的特点
    UNSW CV第二课 上 Image Prepocessing
    UNSW CV Assignment1
    UNSW CV 第一课 下 投影 RGB HSV
    HDU 4350
  • 原文地址:https://www.cnblogs.com/kanchuang/p/11338986.html
Copyright © 2011-2022 走看看