打表练习题——反素数

38人阅读 评论(1) 收藏 举报
分类:

题目描述

如果一个自然数比所有比它小的自然数的约数个数都要多,那么我们就称这个数为一个反素数。例如,1、2、4、6、12和24都是反素数。
任务:
请写一个程序:
读入一个自然数n;
找出不大于n的最大的反素数;
将结果输出。

本题需要用到的知识:约数个数定理

代码(不会打表没逼逼)

//By Bibi
///                 .-~~~~~~~~~-._       _.-~~~~~~~~~-.
///             __.'              ~.   .~              `.__
///           .'//                  \./                  \\`.
///        .'//                     |                     \\`.
///       .'// .-~"""""""~~~~-._     |     _,-~~~~"""""""~-. \\`.
///     .'//.-"                 `-.  |  .-'                 "-.\\`.
///   .'//______.============-..   \ | /   ..-============.______\\`.
/// .'______________________________\|/______________________________`.
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define dep(i,a,b) for(int i=a;i>=b;--i)
using namespace std;
typedef long long ll;
const int N=500;
int read(){
    int sum=0,flag=1;
    char c;
    for(;c<'0'||c>'9';c=getchar())if(c=='-') flag=-1;
    for(;c>='0'&&c<='9';c=getchar())sum=(sum<<1)+(sum<<3)+c-'0';
    return sum*flag;
}
int prime[20]={-1,2,3,5,7,11,13,17,19,23,29,31,37};
int maxid;
int n;
int p[N]={1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560,10080,15120,20160,25200,27720,45360,50400,55440,83160,110880,166320,221760,277200,332640,498960,554400,665280,720720,1081080,1441440,2162160,2882880,3603600,4324320,6486480,7207200,8648640,10810800,14414400,17297280,21621600,32432400,36756720,43243200,61261200,73513440,110270160,122522400,147026880,183783600,245044800,294053760,367567200,551350800,698377680,735134400,1102701600,1396755360,2001000000};
ll ans1;
ll ans2;
void init(){
    n=read();
}
void work1(){
    rep(i,1,500){
        if(p[i]>n) {ans1=p[i-1];break;}
    }
}
void work2(long long now,int d,int tot){
    if(d>maxid||(d==maxid&&now<ans2)) ans2=now,maxid=d;
    if(tot>12) return;
    ll a=1;
    rep(i,0,30){
        if(a*now>n) break;
        work2(now*a,d*(i+1),tot+1);
        a*=prime[tot];
    }
}
int main(){
    init();
    work1();
    work2(1,1,1);
    if(ans1==ans2) printf("%lld\n",ans1);
    else printf("不会打表别逼逼……");
    return 0;
}
/*
根据反素数的定义和约数个数定理很容易证得反素数的质因子质数为严格不下降序列,20亿的数据不过12个质数连乘,20亿以内的反素数也就几十个开个calc手打都能打出来。难道不是打表练习题????

ps:不会打表别逼逼……
*/
查看评论

反素数打表(数组开的有点小,打的有点少。。。)

#include #include #include #include using namespace std; //反素数打表 int y[5001]; int main() { i...
  • qq_32792879
  • qq_32792879
  • 2016-12-27 21:16:27
  • 256

1053: [HAOI2007]反素数ant 打表

做字符串恶心的不行了,赶紧打个表压压惊QAQ#include using namespace std; int a[1000]={1396755360,1102701600,735134400,69...
  • Phenix_2015
  • Phenix_2015
  • 2016-01-10 16:17:17
  • 376

BZOJ_P1503&Codevs_P2912 [HAOI2007]反素数ant(打表+DFS)

BZOJ传送门 Codevs传送门 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2428 Solved: 1351 [Submit][St...
  • qq_18455665
  • qq_18455665
  • 2016-02-26 20:01:21
  • 208

【BZOJ1053】【HAOI2007】反素数ant 打表。/搜索

题解: 以前玩过一件事,就是看20Y以内约数个数最多的数是哪个,约数个数是多少。 http://blog.csdn.net/vmurder/article/details/40429249 然后...
  • Vmurder
  • Vmurder
  • 2015-03-24 12:26:20
  • 1029

HDU4542(反素数+DFS+暴力打表)

HDU4542(反素数+DFS+暴力打表) 分类: 数论2013-05-04 14:52 123人阅读 评论(0) 收藏 举报 题目:小明系列故事——未知剩余系   ...
  • pi9nc
  • pi9nc
  • 2013-08-10 19:32:09
  • 1353

素数系列——反素数

Emirp Time Limit: 5000 MS Memory Limit: 100000 K Total Submit: 147(60...
  • sexgeek
  • sexgeek
  • 2017-01-12 16:08:36
  • 233

zoj 1562 反素数 附上个人对反素数性质的证明

反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整             数,都有,那么称为反素数。 从反素数的定义中可以看出两个性质: (1)一个反素数的所...
  • u011026968
  • u011026968
  • 2014-08-24 00:46:33
  • 1577

反素数深度分析

今天要我要讲的是反素数,在ACM中也算是常见的考点,那么对于搞ACM的同学来说,很有必要搞清楚它,所以接下 来我会很详细地讲解。   在讲解反素数之前,我们先来看反素数的概念。   反素数的定义:对于...
  • ACdreamers
  • ACdreamers
  • 2014-05-05 20:06:46
  • 11417

【HDU4392】【反素数强大的模版 java或者C++】

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4392 JAVA版本: import java.io.BufferedInputStream; im...
  • guhaiteng
  • guhaiteng
  • 2016-10-29 21:19:19
  • 329

[bzoj 1053] [HAOI2007]反素数ant:数论,DAG上最短路

题意:设g(i) = i的约数个数,若对于某个正整数x,所有0
  • ruoruo_cheng
  • ruoruo_cheng
  • 2016-12-04 14:52:55
  • 278
    个人资料
    持之以恒
    等级:
    访问量: 6207
    积分: 706
    排名: 7万+
    友情链接
    最新评论