Minimum Sum LCM UVA - 10791 思维题
2018-03-06 16:44
435 查看
题意为 给你一个数N,让你求出若干个数使得这若干个数的最小公倍数为N,并且这若干个数的和最小。
例如N=12时,这若干个数则为3,4.和为7
N= 10时,这若干个数为2,5.和为7
参照了其他大佬的解法
将n分解成n = p1 ^ k1 * p2 ^ k2 * ... * pm ^ km,然后求解sum = ∑(1≤i≤m)pi ^ ki.此时sum即我们需要的答案,虽然我也不知道为什么这样就对了。比较费解的是n本身就是素数,那么n应该分解成n^ 1 * 1 ^ 1,所以sum= n + 1,还有一种就是n = p ^ k,sum = p ^ k + 1.这两个特殊情况要注意处理到。下面为代码:#include<bits/stdc++.h>
using namespace std;
long long f(long long n)
{
long long ans=0,nn=n;
double b=sqrt(n);
int flag=0;
for(long long i=2;i<=b&&n>1;i++)
{
long long x=0;
if(n%i==0)
{
flag++;
x=1;
while(n%i==0)
{
x*=i;
n/=i;
}
}
ans+=x;
}
if(flag<=1)
return nn+1;
else
{
if(n>1)
ans+=n;
return ans;
}
}
int main()
{
long long n;int u=1;
while(scanf("%lld",&n)&&n)
{
printf("Case %d: %lld\n",u++,f(n));
}
return 0;
}
例如N=12时,这若干个数则为3,4.和为7
N= 10时,这若干个数为2,5.和为7
参照了其他大佬的解法
将n分解成n = p1 ^ k1 * p2 ^ k2 * ... * pm ^ km,然后求解sum = ∑(1≤i≤m)pi ^ ki.此时sum即我们需要的答案,虽然我也不知道为什么这样就对了。比较费解的是n本身就是素数,那么n应该分解成n^ 1 * 1 ^ 1,所以sum= n + 1,还有一种就是n = p ^ k,sum = p ^ k + 1.这两个特殊情况要注意处理到。下面为代码:#include<bits/stdc++.h>
using namespace std;
long long f(long long n)
{
long long ans=0,nn=n;
double b=sqrt(n);
int flag=0;
for(long long i=2;i<=b&&n>1;i++)
{
long long x=0;
if(n%i==0)
{
flag++;
x=1;
while(n%i==0)
{
x*=i;
n/=i;
}
}
ans+=x;
}
if(flag<=1)
return nn+1;
else
{
if(n>1)
ans+=n;
return ans;
}
}
int main()
{
long long n;int u=1;
while(scanf("%lld",&n)&&n)
{
printf("Case %d: %lld\n",u++,f(n));
}
return 0;
}
相关文章推荐
- uva 10791 Minimum Sum LCM(拆分素因子)
- UVa10791 - Minimum Sum LCM
- UVA 10791 Minimum Sum LCM
- Minimum Sum LCM - UVa 10791
- Minimum Sum LCM(UVA 10791)
- Minimum Sum LCM 唯一分解定理+求质因数UVA - 10791
- UVA 10791 Minimum Sum LCM
- UVa 10791 - Minimum Sum LCM 质因数分解加素数筛优化
- 例题10-4 UVA 10791 Minimum Sum LCM (最小公倍数的最小和)
- Minimum Sum LCM 唯一分解定理+求质因数UVA - 10791
- UVa 10791 - Minimum Sum LCM 质因数分解加素数筛优化
- Minimum Sum LCM 唯一分解定理+求质因数UVA - 10791
- UVA 10791 Minimum Sum LCM (数论)
- Minimum Sum LCM UVA - 10791
- UVA - 10791 - Minimum Sum LCM(唯一分解定理)
- Minimum Sum LCM UVA - 10791——唯一分解定理
- UVA 10791 Minimum Sum LCM
- Minimum Sum LCM 唯一分解定理+求质因数UVA - 10791
- UVA 10791 Minimum Sum LCM(质因数分解)
- UVa 10791 - Minimum Sum LCM