• hdu 1999 不可摸数


    不可摸数

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 6684    Accepted Submission(s): 1736

    Problem Description
    s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何
    数m,s(m)都不等于n,则称n为不可摸数.
     
    Input
    包含多组数据,首先输入T,表示有T组数据.每组数据1行给出n(2<=n<=1000)是整数。
     
    Output
    如果n是不可摸数,输出yes,否则输出no
     
    Sample Input
    3 2 5 8
     
    Sample Output
    yes yes no
    import java.util.Scanner;
    
    public class Main{
    	public static void main(String[] args) {
    		Scanner input=new Scanner(System.in);
    		boolean a[]=new boolean[1002];
    		for(int i=2;i<500000;i++){
    			int sum=1;
    			for(int j=2;j*j<=i&&sum<=1000;j++){
    				if(i%j==0){
    					sum+=j;
    					if(j!=i/j)
    						sum+=i/j;
    				}
    			}
    			if(sum<=1000)
    				a[sum]=true;
    		}
    		int N=input.nextInt();
    		while(N-->0){
    			int n=input.nextInt();
    			if(a[n])
    				System.out.println("no");
    			else
    				System.out.println("yes");
    		}
    	}
    }




     
  • 相关阅读:
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    作业
    C语言I博客作业02
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3236914.html
Copyright © 2020-2023  润新知