C语言精髓-完美数

#include <stdio.h>

#include <math.h>

int IsPerfect(int x);

int main()

{

int m;

printf("Input m:");

scanf("%d", &m);

if (IsPerfect(m))  /* 完全数判定 */

printf("%d is a perfect number\n", m);

else

printf("%d is not a perfect number\n", m);

return 0;

}

/* 函数功能:判断完全数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数 */

int IsPerfect(int x)

{

int i;

int total = 0;          /* 1没有真因子,不是完全数 */

for (i=1;i<x;i++)

{

if (x%i == 0)

total = total + i;

}

return total==x ? 1 : 0;

}

时间: 2024-11-05 06:21:56

C语言精髓-完美数的相关文章

ACdream 1064 完美数

完美数 Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) SubmitStatisticNext Problem Problem Description 8是中国人很喜欢的一个数字,但是如果有3的存在就变成了38,就不是很好了.. 你能告诉我,在[L, R] 的正整数区间内,要么包含3 要么包含 8 的不同的整数有多少个么? Input 第一行一个整数T (T ≤ 10000),代表数据

试读《JavaScript语言精髓与编程实践》

有幸看到iteye的活动,有幸读到<JavaScript语言精髓与编程实践_第2版>的试读版本,希望更有幸能完整的读到此书. 说来读这本书的冲动,来得很诡异,写一篇读后感,赢一本书,其实奖励并不大,依靠纯粹的物质奖励,很显然,不会强烈的促使我去读这本书.而原因在于,一方面对javascript的极大兴趣,另一方面之前已经拜读过如<javascript高级程序设计><高性能javascript><javascript设计模式>等书,那我就有了要看看这本书都写了

51nod 1232 完美数 数位dp

1232 完美数 题目来源: 胡仁东 基准时间限制:2 秒 空间限制:131072 KB 如果一个数能够被组成它的各个非0数字整除,则称它是完美数.例如:1-9都是完美数,10,11,12,101都是完美数,但是13就不是完美数(因为13不能被数字3整除). 现在给定正整数x,y,求x和y之间(包含x和y的闭区间)共有多少完美数. 题目作者为: Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 10000) 第2 - T + 1行:每行2个数,X, Y中间用空

完美数(打表)

                     完美数                        Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Description 任何一个自然数的约数中都有1和它本身,我们把小于它本身的因数叫做这个自然数的真约数. 如6的所有真约数是1.2.3,而且6=1+2+3.像这样,一个数所有真约数的和正好等于这个数,通常把这个数叫做完美数. 古希腊人非常重视完美数.

HNU 12876 Quite Good Numbers 完美数变形

筛法是一种很快的方法,贴代码纪念一下. 做法很像筛法 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #include <algorithm> 7 #include <string> 8 #include <queue> 9 #include <

ZZUOJ 10507: 非完美数

题目链接:http://acm.zzu.edu.cn:8000/problem.php?id=10507 题目大意:求L到R区间内所有数与小于它自己的约数的差的绝对值的和. 解题思路:拿个筛子筛一筛.注意1的时候还是1以及long long 代码: const int maxn = 1e6 + 5; typedef long long ll; int l, r; ll a[maxn], sum[maxn]; void dowork(){ memset(a, 0, sizeof(a)); for(

Craps赌博游戏、百钱白鸡、七星彩选号、抓小偷、21根火柴、10000以内完美数

Craps赌博游戏 游戏规则:同时扔两颗骰子,第一次扔出的点数数7或则11玩家胜,扔出2.3或则12庄家胜利,否则继续扔骰子. 以后只要扔出和第一次相同的点数玩家胜,扔出7庄家胜. 玩家每次进入有1000的筹码,输完游戏结束! 1 public static void gambleGame() { 2 int a = 0; 3 int money = 1000; 4 for (int j = 0;; j++) { 5 if (money > 0) { 6 System.out.println(&qu

51nod 1232:完美数

51nod 1232:完美数 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1232 题目大意:如果一个数能够被组成它的各个非$0$数字整除,则称它是完美数.例如:$10$,$11$,$12$,$101$都是完美数,但是$13$就不是完美数(因为$13$不能被数字3整除).现在给定正整数$x$,$y$,求$[x,y]$中共有多少完美数.共有$T$组数据. 数位DP 如果对于$a \equiv r(mod m)

C语言函数參数传递原理

C语言中參数的传递方式一般存在两种方式:一种是通过栈的形式传递.还有一种是通过寄存器的方式传递的. 这次.我们仅仅是具体描写叙述一下第一种參数传递方式,第二种方式在这里不做具体介绍. 首先,我们看一下,以下一个简单的调用例程: int Add (int a, int b, int c) { return a+b+c; } void main() { int x =0 , y = 1, z = 2; int result = 0; result = Add(x, y, z); printf("Re