整数的约数和
2017-11-19 15:25
225 查看
输入一个自然数x,求这个自然数的所有约数之和。x 属于int 范围内
输入格式: 一个整数 x,x在32位整数范围内。也就是说 x<=2^31
输出格式: x的所有约数和。 x的约数包括它本身。
之前我认为这种题目也太简单了,可谁知我竟然打了这么一个程序:
#include<bits/stdc++.h>
using namespacestd;
int main()
{
long long x,a;
a=0;
cin>>x;
for(int i=1;i<=x;i++)
{
{
if(i!=x/i)
a=a+x/i;
}
}
cout<<a;
return 0;
}
本打算信心满满地提交,竟然连样例都过不了。后来我仔细看了看,检查了一下,不仅少了一个if语句,还离奇地少了开方这一回事,正确的代码如下:
#include<bits/stdc++.h>
using namespacestd;
int main()
{
long long x,a;
a=0;
cin>>x;
for(int i=1;i<=sqrt(x)*1;i++)
{
if(x%i==0)
{
a=a+i;
if(i!=x/i)
a=a+x/i;
}
}
cout<<a;
return 0;
}
这使我懂得了必须得仔细、细心,不能因为这是一道简单的题就小瞧它,再简单的题也会有坑的呢!
相关文章推荐
- 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)
- 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)
- 输入一个整数,输出该整数所有的约数
- POJ 1845-Sumdiv(快速幂取模+整数唯一分解定理+约数和公式+同余模公式)
- 杭电acm2040:亲和数(两整数真约数和互等)
- 求一个整数所有约数的和(除自身外)
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 最多约数问题。正整数 x 的约数是能整除x的正整数,其约数的个数记为div(x),例如div(10)=4。设 a 和 b 是两个正整数,找出 a 和 b 之间约数个数最多的数 x 的约数个数。 样例
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 约数枚举与整数分解 2018-2-11
- 【HDU4542】【反素数+DFS+暴力打表】【给出一个数K,和两个操作,如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K,如果操作是1,就求出一个最小的X,满足X的约数个数为X-K】
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。
- POJ 1845-Sumdiv(快速幂取模+整数唯一分解定理+约数和公式+同余模公式)
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 3696 The Luckiest number 最小X整数倍数 大整数质因数分解及欧拉函数,dfs求大整数的所有约数
- 设a和b是两个正整数,a<=b,计算a和b之间约数个数最多的整数
- 1/x+1/y=1/n 正整数解的个数(约数定理)