package al;
/**
* @author zhangrichao
* @version 创建时间:2019年1月6日 下午8:55:34
* 求完数
*/
第一种方法:减法方式
public class PerfectNumber {
public static void PerfectN(){
for(int a=2;a<=1000;a++){
int s=a;
for(int i=1;i<a;i++){
if(a%i==0){
s=s-i;
}
}
if(s==0){
System.out.println("输出完数:"+a);
}
}
}
public static void main(String[] args){
PerfectN();
}
}
第二种方式:加法方式
public class PerfectNumber {
public static void PerfectN(){
for(int a=2;a<=1000;a++){
int s=0;
for(int i=1;i<a;i++){
if(a%i==0){
s+=i;
}
}
if(s==a){
System.out.println("输出完数:"+a);
}
}
}
public static void main(String[] args){
PerfectN();
}
}
第三种方式:递归法
public class PerfectNumber {
public static void PerfectN(int a){
if(a>1000){
return;
}
int s=0;
for(int i=1;i<a;i++){
if(a%i==0){
s+=i;
}
}
if(s==a){
System.out.println("输出完数:"+a);
}
PerfectN(a+1);
}
public static void main(String[] args){
PerfectN(2);
}
}
java求完数的三种方法
最新推荐文章于 2024-07-16 08:00:00 发布