P1820 【寻找AP数】
这题程序实现其实并不难,难的是数学的思想及证明,这在真正的比赛考场上其实是不容易想到的
去年的年赛题目也是在往更难的数学思想上靠拢,并不是一味的编程,需要一定的数学基础
这个。。数学性质我再提一下吧,有兴趣的可以自己尝试证一下~~
_性质一_
一个AP数分解质因数后,它的因子必为连续质数
_性质二_
一个AP数分解质因数后,因子越小,指数越大
实际上,我觉得这两个数学性质都蛮好想的,个人感觉不用看证明。
另外,编程时注意以下几点:
1)一个AP数的质因子数不会超过10,不然大于数据范围
2)用long long型变量存储答案,不然会爆
3)指数递减
代码:
#include<cmath>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
long long n,ap,fap;//ap是要输出的答案,fap是答案的质因子数
int mm[]={,,,,,,,,,};//可能的质因子
void dfs(long long num,int fnum,int i,int j){
if(fap<fnum||(fap==fnum&&ap>num)){//更改输出答案的条件
fap=fnum;
ap=num;
}
int t=;
while(t<=j&&num*mm[i]<=n){//直接判断
num*=mm[i];
dfs(num,fnum*(t+),i+,t);
t++;
}
return;
}
int main(){
while(scanf("%d",&n)!=EOF){//多组数据
ap=fap=;//赋初值,不然会错的很惨
dfs(,,,);
cout<<ap<<endl;
}
return ;
}
呐呐,就是这样了哦,新人博客,多多支持一下吧,嘻嘻~~~
P1820 【寻找AP数】的更多相关文章
- P1820 寻找AP数
P1820 寻找AP数两个性质,分解质因数后,连续,且指数递减,dfs就完了 #include <iostream> #include <cstdio> #include &l ...
- 寻找AP数
题目背景 正整数n是无穷的,但其中有些数有神奇的性质,我们给它个名字--AP数. 题目描述 对于一个数字i是AP数的充要条件是所有比它小的数的因数个数都没有i的因数个数多.比如6的因数是1 2 3 6 ...
- 基于visual Studio2013解决面试题之0701寻找丑数
题目
- 九度OJ 1214 寻找丑数【算法】
题目地址:http://ac.jobdu.com/problem.php?pid=1214 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因 ...
- 笔试算法题(20):寻找丑数 & 打印1到N位的所有的数
出题:将只包含2,3,5的因子的数称为丑数(Ugly Number),要求找到前面1500个丑数: 分析: 解法1:依次判断从1开始的每一个整数,2,3,5是因子则整数必须可以被他们其中的一个整除,如 ...
- 【Python】【demo实验20】【练习实例】【寻找“完数”】
原题: 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 我的代码: #!/usr/bin/python # encodi ...
- 如何使用python在短时间内寻找完数
完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数 ...
- 37.寻找丑数[Ugly numbers]
[题目] 我们把只包含质因子2.3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第1500个丑 ...
- 【C语言编程练习】5.10寻找水仙数
1. 题目要求 如果一个3位数等于各位数字的立方和,则称这个数为水仙数,例如407=4^3+0^3+7^3.编写一个程序,找出全部的水仙数 2. 题目分析 感觉又和之前的题目大同小异了,先找出解空间, ...
随机推荐
- 使用SetWindowHookEx注入global hook
写下这是为了自己复习的. 主要实现的是给File Explorer注入鼠标钩子,以检测鼠标是否在File Explorer上点击 .cpp #include <Windows.h> #in ...
- JVM的四种GC算法
程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经无法访问,程序用不了它们了,对程序而言它们已经死亡),为了确保程序运行时的性能,java虚拟机在程序运 ...
- 如何阻止<a>标签默认行为和表单提交
阻止<a>标签默认行为 方式一 (通过return false) <!DOCTYPE html> <html> <head> <meta char ...
- vue-cli中模拟数据的两种方法
我所使用的是新版vue-cli 首先进行所需插件的安装,vue-resource,json-server,proxyTable. 目录结构如图 在main.js中引入vue-resource模块,Vu ...
- mysql5.7 环境准备
原文源自:https://www.cnblogs.com/activiti/p/7810166.html 操作系统为centos7 .修改 /etc/my.cnf,在 [mysqld] 小节下添加一行 ...
- c语言结构体以及结构体指针的使用
结构体: 正常定义一个结构体: typedef struct node{ ]; int len; }Seq,*llink; 定义结构体指针: Seq *s;或者llink t;之后关于s与t的用法,其 ...
- (转载)了解Android 4.1,之三:黄油项目 —— 运作机理及新鲜玩意
Welcome back to GTKA, everyone's favorite investigative series where we learn all about the newest v ...
- [ubuntu] 外挂硬盘
1. 查看磁盘信息 fdisk -l 这里我需要对sda进行分区,所以要进到sda中 2. 进到欲分区磁盘中 $ sudo fdisk /dev/sda Welcome to fdisk (util- ...
- centos6升级系统内核
1.升级系统内核查看内核版本: uname -r 2.6.32-573.8.1.el6.x86_64 导入elrepo的key: rpm --import https://www.elrepo.org ...
- CodeForces 714E Sonya and Problem Wihtout a Legend(单调数列和DP的小研究)
题意:给你n个数字,每个数字可以加减任何数字,付出变化差值的代价,求最后整个序列是严格单调递增的最小的代价. 首先我们要将这个题目进行转化,因为严格单调下是无法用下面这个dp的方法的,因此我们转化成非 ...