如何用C语言求一个整数的所有约数之和?

如何用C语言求一个整数的所有约数之和?,第1张

#include <stdio.h>

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

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12292811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存