zoukankan      html  css  js  c++  java
  • 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(" ");
    }
    num = 0;
    }
    return 0;
    }
    ···

    Yesterday is history,tomorrow ismystery,but today is a gift!That why it is called Present!
  • 相关阅读:
    I.MX6 Surfaceflinger 机制
    理解 Android Fragment
    RPi 2B DDNS 动态域名
    RPi 2B IPC webcam server
    理解 Android MVP 开发模式
    I.MX6 system.img unpack repack
    can't set android permissions
    VMware Ubuntu 共享文件夹
    解决oracle数据库连接不上的问题
    perfect-scrollbar示例
  • 原文地址:https://www.cnblogs.com/VictorierJwr/p/12408706.html
Copyright © 2011-2022 走看看