1.编写一个Java程序,输出任意数之间的所有完数。
//输出任意数之间的所有完数
package ou.yantai;
import java.util.*;
public class Wanshu {
public static void main(String[] args) {
System.out.println("输出任意数:");
int b;
Scanner sca=new Scanner(System.in);
b=sca.nextInt();
Wanshu w=new Wanshu(b);
}
public Wanshu(int a)
{
System.out.println("输出任意数"+a+"之间的所有完数:");
for(int j=1;j<=a;j++)
{
int sum=0;
for(int i=1;i<j;i++)
{
if(j%i==0)
{
sum=sum+i;
}
}
if(sum==j)
{
System.out.println("此数为完数:"+j);
}
}
}
}
2,对于一个大于3位数的任意整数,输出其降序数
//功能:对于一个大于3位数的任意整数,输出其降序数。
//2012.10.07
package ou.yantai;
import java.util.*;
public class Dpx {
public static void main(String[] args) {
System.out.println("对于一个大于3位数的任意整数:");
Scanner sca=new Scanner(System.in);
int b=sca.nextInt();
//思路:求出每一位数,将其放到数组中去
int d=weishu(b);//先调用weishu()求出这个数的位数;
if(d<=3)
{
System.out.println("输入不合法!!!");
}
else
{
int[] a=new int[d];
for(int j=0;j<d;j++)
{
int c=b%10;
a[j]=c;
b=(b-c)/10;
}
System.out.print("降序数:");
for(int j=0;j<d;j++)
System.out.print(a[j]);
}
}
public static int weishu(int t)//求位数
{
int a=1;
int i;
for(i=1; ;i++)
{
int c=t;//注意此语句要在for内
a=a*10;
c=c%a;
if(c==t)
{
return i;
}
}
}
}