32:完数个数

32 完数个数

作者: xxx时间限制: 1S章节: 循环

问题描述 :
完数的定义:如果一个大于1的正整数的所有真因子(不包括自己的那些因子)之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。
本题的任务是判断两个正整数之间完数的个数。

输入说明 :
第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000)

输出说明 :
对于每组测试数据,请输出num1和num2之间(包括num1和num2)存在的完数个数。

输入范例 :
3
2 9999
4305 4135
5186 91

输出范例 :
4
0
1

代码:
···

include <stdio.h>

void conum(int st[],int n)
{
int sum = 0;
int top = -1;
for (int i = 1; i < n; i++)
{
for (int j = 1; j < i; j++)
{
if (i%j == 0)
{
sum += j;
}
}
if (sum == i)
{
top++;
st[top] = i;
}
sum = 0;
}
}
int main()
{
int n, num1, num2, num = 0;
int st[10] = { 0 };
conum(st,10000);
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d%d", &num1, &num2);
if (num1>num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
for (int j = 0; j < 10; j++)
{
if (st[j] >= num1&&st[j] <= num2&&st[j] != 0)
{
num++;
}
}
printf("%d", num);
if (i < n - 1)
{
printf("\n");
}
num = 0;
}
return 0;
}
···

原文地址:https://www.cnblogs.com/VictorierJwr/p/12408706.html

时间: 2024-10-09 21:08:36

32:完数个数的相关文章

HDU_1406 完数

Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正整数之间完数的个数. Input 输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) . Output 对于每组测试数据,请输出num1和num2之间(包括num1和

java_完数

题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数. 提示:可以写一个函数来判断某个数是否是完数. 输入格式: 两个正整数,以空格分隔. 输出格式: 其间所有的完数,以空格分隔,最后一个数字后面没有空格.如果没有,则输出一个空行. 输入样例: 1 10 输出样例: 6 时间限制:5

hdoj 1406 完数

完数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23233    Accepted Submission(s): 8456 Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正

HDU 1406.完数【筛选法以及特殊方法】【7月27】

完数 看来我的心还是不够细啊,这对一个ACMer来说,太致命了! Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正整数之间完数的个数. Input 输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) . Outpu

完数问题

问题:完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14,本题的任务是判断两个正整数之间完数的个数.Input输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) .Output对于每组测试数据,请输出num1和num2之间(包括num1和num2)存在的完数个数,写出算法. Sam

hdu 1406 完数

Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正整数之间完数的个数. Input 输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) . Output 对于每组测试数据,请输出num1和num2之间(包括num1和

完数[HDU1406]

完数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27275 Accepted Submission(s): 10213 Problem Description完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正整数之间完数

HDOJ 1406 完数(打表,附讨论区出现的史上最牛逼打表,0ms)

 完数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 22197    Accepted Submission(s): 8115 Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判

HDU 1406 完数【打表】

/* 题目大意:求解给定两个数之间的完数的数目 解题思路:打一个求一个数所有因子之和的表. 关键点:找出一个数的所有因子,注意给定你两个数的大小关系 解题人:lingnichong 解题时间:2014-08-28 10:25:16 解题体会:注意题意啊 */ 完数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18355    Acc