首页 > 完全数
头像 (́安◞౪◟排‵)
发表于 2020-11-30 18:05:49
调用因数分解模板,如何把所有因子加起来再判断即可复杂度O( ) #include<bits/stdc++.h> #define int long long using namespace std; int n; int work(int x) { int ans=0; f 展开全文
头像 Rikkar
发表于 2020-11-29 23:01:07
其实对于数组的顺序打乱并不会影响,因为都是要求对所有i,j分别匹配求出能满足条件的解的个数,所以排序加二分即可。 include include include include include<memory.h> include include define pii pair<in 展开全文
头像 sunrise__sunrise
发表于 2020-11-30 11:38:20
A、完全数 分解一个数的因子,直接 判断即可,符合时间要求。 void solve() { ll n = read(); ll m = 1; for (ll i = 2; i * i <= n; ++i) { if (n % i == 0) { 展开全文
头像 LavenderPikachu
发表于 2020-11-29 21:31:28
A完全数首先说一声抱歉,语文不好可能词不达意。我们可以用判素数的思想来思考这题,假设ab=n(即a,b是n的两个因子),那么a,b中较小的因子一定属于1,sqrt(n)因为n本身不算做因子那么我们可以枚举i from 2 to sqrt(n)的数(即枚举ab=n a,b因子较小的那一个)计数sum从 展开全文
头像 EmperorDragonEmperor
发表于 2020-11-29 21:54:21
我们可以直接枚举(暴力)出答案 #include<stdio.h> #include< cmath> int main(){ long long n;//数字规模较大 scanf("%d",&n);//速度更快 long long temp=1 展开全文
头像 Doran_dinosaur
发表于 2020-11-30 21:05:19
完全数 完全数满足:一个数的所有因子之和 - 它自己 = 它自己 因子之和 = 约数之和 求一个数的所有约数之和:先把每个质因数从0次幂一直加到其最高次幂,再把每个相应质因数幂的和相乘. 代码如下: #include<bits/stdc++.h> using namespace s 展开全文
头像 AB-IN
发表于 2020-11-30 13:04:25
A. 完全数 没想太多,看到求因子和就想到了唯一分解定理,写个线性筛,套个求因子和的函数即可。不懂的可以看一眼我之前的文章。-> 戳 #include <bits/stdc++.h> #define ll long long const int N=1e6+5; int cnt, 展开全文
头像 可爱的小萌新~
发表于 2020-12-19 18:08:35
依题意,只需求出所有n的约数再进行判断。不能直接O(n)扫描,显然约数是一对一对的(注意特判完全平方数),只需算小于的那一半约数即可 #include<cstdio> #include<cmath> using namespace std; long long n,lim; 展开全文
头像 BNDSBilly
发表于 2020-12-01 00:24:18
思路:模拟 根据题意,我们需要求出给定 的所有除自己以外的约数并求和,最后判断元素和 是否等于给定元素 ,由于给定 的范围最大到 ,所以找约数时找到 即可。特别地,为了保证 为完全平方数时不重复计算平方根,在加和时需要特判。 代码: #include <bits/stdc++.h&g 展开全文