九度OJ 题目1060:完数VS盈数
2015-08-19 14:23
495 查看
一.题目描述:
一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。
求出2到60之间所有“完数”和“盈数”。
输入:
题目没有任何输入。
输出:
输出2到60之间所有“完数”和“盈数”,并以如下形式输出:
E: e1 e2 e3 ......(ei为完数)
G: g1 g2 g3 ......(gi为盈数)
其中两个数之间要有空格,行尾不加空格。
二.题目分析
水题
三.代码
一.题目描述:
一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。
求出2到60之间所有“完数”和“盈数”。
输入:
题目没有任何输入。
输出:
输出2到60之间所有“完数”和“盈数”,并以如下形式输出:
E: e1 e2 e3 ......(ei为完数)
G: g1 g2 g3 ......(gi为盈数)
其中两个数之间要有空格,行尾不加空格。
二.题目分析
水题
三.代码
#include <stdio.h> #include <stdlib.h> int sum(int x) { int i,s=0; for(i=1;i<x;i++) { if(x%i==0) s+=i; } return s; } int main() { int i,j=0,k=0,perfect[60],over[60]; for(i=2;i<=60;i++) { if(sum(i)==i) perfect[j++]=i; else if(sum(i)>i) over[k++]=i; } printf("E: %d",perfect[0]); for(i=1;i<j;i++) printf(" %d",perfect[i]); printf("\nG: %d",over[0]); for(i=1;i<k;i++) printf(" %d",over[i]); printf("\n"); return 0; }
相关文章推荐
- 前端JavaScript规范 非常详细
- 01背包问题
- emacs打开乱码解决办法
- Python——面向对象
- BeeFrameWork框架下的ActiveAndroid自动生成数据库表Java文件
- 03-树2. List Leaves (25) Python C
- VS报错error LNK1120
- HTML5 boilerplate 笔记(转)
- Android设计模式系列--原型模式
- 搜索引擎核心读书心得3:分布式爬虫
- 华为OJ平台试题 ——字符串:输出数组中重复的数组
- Invert Binary Tree
- 13款最好的开源Linux操作系统
- HDU 5400 Arithmetic Sequence
- glass choice and eye protection
- android帧动画,移动位置,缩放,改变透明度等动画讲解
- hdu 5400 Arithmetic Sequence 2015多校联合训练赛#9 枚举
- C++ Web Programming
- android帧动画,移动位置,缩放,改变透明度等动画讲解
- oc 类型判断