zoukankan      html  css  js  c++  java
  • 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和num2)存在的完数个数。
     
    Sample Input
    2 2 5 5 7
     
    Sample Output
    0 1
    代码如下:
     1 #include <cstdio>
     2 #include <cmath>
     3 int pd(int num){
     4     int ll=0;
     5     for(int i=1;i<num;i++){
     6         if(num%i==0){
     7             ll+=i;
     8         }
     9     }
    10     if(ll==num)
    11        return 0;
    12     else 
    13        return 1; 
    14 }
    15 int main()
    16 {
    17     int n;
    18     scanf("%d",&n);
    19     while(n--){
    20         int num1,num2;
    21         scanf("%d %d",&num1,&num2);
    22         if(num1>num2){
    23             int temp;
    24             temp=num1;
    25             num1=num2;
    26             num2=temp;
    27         }
    28         int ans=0;
    29         for(int i=num1;i<=num2;i++){
    30             if(pd(i)==0){
    31                 ans++;
    32             }
    33         }
    34         printf("%d
    ",ans);
    35     }
    36     
    37     return 0;
    38 } 
    思路解析:
              一定要读好题一定要读好题一定要读好题!重要的事情说三遍。本题最大的坑就是num1可以比num2大!注意到这一点本题就AC。
     
  • 相关阅读:
    嵌入式Linux基础知识
    面向对象程序设计与原则
    设计模式之工厂模式
    设计模式之单例模式
    基于Doxygen的C/C++注释原则
    设计模式概论
    重启博客
    java 单例模式的几种写法
    CountDownLatch、CyclicBarrier
    java ConcurrentHashMap和CopyOnWriteArrayList解决并发问题
  • 原文地址:https://www.cnblogs.com/xzt6/p/5742852.html
Copyright © 2011-2022 走看看