int main(int argc, char *argv[])
{
int i,a,sum
while(scanf("%d",&a)!=EOF)
{
printf("耐蔽%d 的约汪弯数有:"困亩闷,a)
sum=0
for(i=1i<=ai++)
if(a%i==0)
sum+=i,printf("%d ,",i)
printf(" 约数和为 %d\n",sum)
}
return 0
}
为方便给约数排序用洞滚唤了vector
#include <iostream>#include <vector>
#include <algorithm>
using namespace std
int main()
{
int n
int s = 0
int i
cout << "输入一个数:" << endl
cin >> n
cout << n << "的约数有:"
vector<int> r
for (i = 1 i*i <= n ++i)
{
if (n%i == 0)
{
r.push_back(i)
s += i
if (i*i != n)
{
r.push_back(n / i)
s += n / i
}
}
}
sort(r.begin(), r.end())
vector<int>::iterator it
for (it = r.begin() it 纳凯< 备宴r.end() ++it)
{
cout << *it << " "
}
cout << endl
cout << "约数的和为:" << s << endl
return 0
}
整数A能被整数B整除,A叫做B的倍数,B就叫做A的约数(现在新教材叫因数)(在自然数的范围内)
6的约数有:1、2、3、6
10的约数有:1、2、5、10
15的约数有:1、3、5、15
有了这个知识就简单升和了
using System
using System.Collections.Generic
using System.Linq
using System.Text
namespace NumberOperation
{
class NumberOperation
{
/// <summary>
/// 返回指定吵磨盯整数的约数集合
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public static List<int>Divisors(int num)
{
List<int>divisors = new List<int>()
for (int i = 1i <= numi++)
{
if (0 == num % i)
{
divisors.Add(i)
}
}
return divisors
}
/// <summary>
/// 计算指定整数约数的和
/// </summary>
/// <param name="num"></param>
/// <returns></游桥returns>
public static int SumDivisors(int num)
{
int sum = 0
foreach (int i in Divisors(num))
{
sum += i
}
return sum
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)