Java解决问题

    技术2022-07-11  92

    java解决关于“完数”的问题

    问题描述:

    一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。 现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。

    输入格式:

    两个正整数,以空格分隔。

    输出格式:

    其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一个空行。

    输入样例:

    1 100000000

    输出样例:

    6 28 496 8128

    代码展示:

    import java.util.Scanner; public class text7_2 { //判断是否为完数 public static int wanshu(int i) { int sum=1; int ntr = 0; if(i>1) { for(int j=2;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) { ntr=1; } } return ntr; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int num1=in.nextInt(); int num2=in.nextInt(); int count=0; for(int i=num1;i<=num2;i++) { if(wanshu(i)==1) { //输出空格 //这种方式非常巧妙的解决最后一个数据后面无空格d的问题 if(count!=0) { System.out.print(" "); } count++; System.out.print(i); } } } }

    Processed: 0.017, SQL: 9