HDOJ 1406 完数

来源:互联网 发布:淘宝游戏王正版 编辑:程序博客网 时间:2024/06/06 06:58

HDACM 1406

直接打表解决

import java.util.Scanner;public class Main{    public static void main(String[] args) {        boolean finish[] = new boolean[10000];        for (int i = 1; i < finish.length; i++) {            int sum = 1;            for (int j = 2; j*j <= i; j++) {                if (i%j==0) {                    sum += j+i/j;                }            }            if (sum == i) {                finish[i] = true;            }        }        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        while (n-->0) {            int a = sc.nextInt();            int b = sc.nextInt();            int count = 0;            for (int i = a>b?b:a; i <= (a>b?a:b); i++) {                if (finish[i]) {                    count++;                }            }            System.out.println(count);        }        sc.close();    }}
原创粉丝点击