算法训练 完数

问题描述

  一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6就是“完数”。又如,28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28也是“完数”。编写一个程序,判断用户输入的一个数是否为“完数”。   输入格式:输入只有一行,即一个整数。   输出格式:输出只有一行,如果该数为完数,输出yes,否则输出no。   输入输出样例

样例输入

6

样例输出

yes 思路:        n的最大因子为n/2,循环2~n/2,记录sum。对n=1进行特判。

#include <cstdio>

int FacSum(int n)
{
	int sum = 0, i;
	for(i = 2; i <= n / 2; i++)
	{
		if(n % i == 0)
		{
			sum += i; 
		}
	}
	return sum + 1;
} 

int main()
{
//	freopen("input8.txt", "r", stdin); 
	int n, i, sum;
	scanf("%d", &n);
	if(n == 1)
	{
		printf("no\n");
		return 0;
	}
	sum = FacSum(n);
	if(sum == n)
		printf("yes\n");
	else
		printf("no\n");
	return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 算法训练 K好数

    如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有...

    刘开心_1266679
  • 算法训练 K好数

    问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = ...

    AI那点小事
  • 算法训练 数字三角形

    问题描述   (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路   径,使该路径所经过的数字的总和最大。   ●每一步...

    AI那点小事
  • 算法训练 排序

    问题描述   编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。   输入格式:输入只有一行,即三个整数,中间用空格隔开。  ...

    AI那点小事
  • 算法训练 动态数组使用

    从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。 样例输入...

    AI那点小事
  • 算法训练 矩阵乘法

    问题描述   输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。 输入格式   第一行,空格隔开的三个正整数m,s,n(均不超过200...

    AI那点小事
  • 算法训练 Hanoi问题

      如果将课本上的Hanoi塔问题稍做修改:仍然是给定N只盘子,3根柱子,但是允许每次最多移动相邻的M只盘子(当然移动盘子的数目也可以小于M),最少需要多少次?...

    刘开心_1266679
  • 算法训练 最短路

    问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。

    AI那点小事
  • 算法训练 Anagrams问题

    问题描述   Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”...

    AI那点小事
  • 算法训练 最大的算式

    问题描述   题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N...

    AI那点小事
  • 算法训练 区间k大数查询

    接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。

    AI那点小事
  • 算法训练 最大最小公倍数

    问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

    AI那点小事
  • 算法训练 删除数组零元素

    从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函...

    AI那点小事
  • 算法训练 5-1最小公倍数

    问题描述   编写一函数lcm,求两个正整数的最小公倍数。 样例输入 一个满足题目要求的输入范例。 例:

    AI那点小事
  • 算法训练 出现次数最多的整数

    问题描述   编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计...

    AI那点小事
  • 算法训练 结点选择

    有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?

    刘开心_1266679
  • 算法训练 入学考试

      辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都...

    刘开心_1266679
  • 算法训练 传球游戏

      上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。   游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿...

    刘开心_1266679
  • 算法训练 拦截导弹

      某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发...

    刘开心_1266679

扫码关注云+社区

领取腾讯云代金券