如有帮助望采纳,点击我回答右上角【采纳】按钮。
思路:
//思路就是遍历这段范围,判断其他因数相加是否等于它本身,等于的话,再依次输出。 // 出现运行超时的结果有可能是使用完Scanner没有及时关闭,最好用完就关掉。 // 还有一个要注意的点就是每次用完sum之后在下次使用之前要把sum赋值为一。
//思路就是遍历这段范围,判断其他因数相加是否等于它本身,等于的话,再依次输出。
// 出现运行超时的结果有可能是使用完Scanner没有及时关闭,最好用完就关掉。
// 还有一个要注意的点就是每次用完sum之后在下次使用之前要把sum赋值为一。
import java.util.Scanner;
public class Test {
public static void main(String[] agrs) {
Scanner in=new Scanner(System.in);
int m=in.nextInt();
int n=in.nextInt();
int i,j,sum,flag=0;
for(i=m;i<=n;i++){
if(i==1) continue;
sum=1;
for(j=2;j<i;j++){
if(i%j==0)
sum=sum+j;
}
if(sum==i){
flag=1;
System.out.printf("%d",sum);
in.close();
}
}
if(flag==0)
System.out.println("None");
}
}
import java.util.*;
public class Test{
public static void main(String args[]){
int i,j;
int m,n;
int num;//因子之和
Scanner in = new Scanner(System.in);
m = in.nextInt();
n = in.nextInt();
for(i=m;i<=n;i++){
num = 0;
for(j=2;j<=i;j++){ //j代表i对应的任何一个可能的因子
if(i %j == 0){
num += i/j;
}
}
//判断因子之和是否和该数相等
if(num==i){
System.out.println(i+"是完数");
}
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632