首页 > TAG信息列表 > 燕姿
P4397 [JLOI2014]聪明的燕姿
题目 P4397 [JLOI2014]聪明的燕姿 分析 根据因数和公式,显然一个数的质因数和质数都不会太多,类似反素数的套路。 所以直接搜索即可。 代码 #include<bits/stdc++.h> using namespace std; template <typename T> inline void read(T &x){ x=0;char ch=getchar();bool f=false;P4397 【[JLOI2014]聪明的燕姿】
先讲一些东西 1.算数基本定理:任何一个大于1的自然数N,都可以唯一分解成有限个质数的乘积N=P₁^a₁ P₂a₂…Pnan,这里P₁<P₂<…<Pn均为质数,其诸指数ai是正整数。 2.约数和定理:对于任意一个大于1的正整数N可以分解正整数:N=P₁^a₁ P₂a₂…Pnan,则由约数个数定理可知N的正约数有(a₁+AcWing1296. 聪明的燕姿
聪明的燕姿 解题思路: 首先我们肯定要用到约数之和定理 但是有个问题就是要怎么用 根据经验得知,约数最多也就六七个左右,不然直接就超了s的范围。所以我们考虑用爆搜来做 但是用爆搜的话还是要优化一下思路和用什么顺序去搜索。 顺序: 按照p和α的顺序来枚举 一旦s%这个当前的乘积==BZOJ 3629: [JLOI2014]聪明的燕姿 数论+爆搜
推式子没推出来什么特别有用的结论. 看题解后发现这尼玛就是一个大爆搜啊. 以后碰到这种推式子推不出来,或者没啥思路的时候可以考虑爆搜解决. code: #include <cstdio> #include <string> #include <cstring> #include <algorithm> #define N 50001 #define ll lo「JLOI2014」聪明的燕姿
传送门 Luogu 解题思路 很容易想到直接构造合法的数,但是这显然是会T飞的。 我们需要考虑这样一件事: 对于一个数 \(n\),对其进行质因数分解: \[n=\sum_{i=1}^x p_i^{c_i}\] 那么就会有: \[\sigma(n)=\prod_{i=1}^x \sum_{j=1}^{c_i}p^j\] 可以证明 \(\sigma(n)\) 和 \(n\) 同级,所以这