Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个用for循环查找奇数丰富sigma函数数的方法_Java_For Loop - Fatal编程技术网

Java 创建一个用for循环查找奇数丰富sigma函数数的方法

Java 创建一个用for循环查找奇数丰富sigma函数数的方法,java,for-loop,Java,For Loop,我正在尝试创建一个方法,该方法将获取一个数字,并使用sigma函数确定该数字是否为奇数、富余数。一个富足数是当放入西格玛函数时产生的大于给定数之和的任何数 例如,西格玛(12)是丰富的,因为西格玛(12)=1+2+3+4+6+12=28。然而,它并不奇怪,所以我的方法不会考虑它。我不明白为什么我的循环函数不起作用,因为当我试图输入一个范围时,它会吐出一堆数字乱码。以下是我目前掌握的情况: import java.util.*; public class OddAbundant { stati

我正在尝试创建一个方法,该方法将获取一个数字,并使用sigma函数确定该数字是否为奇数、富余数。一个富足数是当放入西格玛函数时产生的大于给定数之和的任何数

例如,西格玛(12)是丰富的,因为西格玛(12)=1+2+3+4+6+12=28。然而,它并不奇怪,所以我的方法不会考虑它。我不明白为什么我的循环函数不起作用,因为当我试图输入一个范围时,它会吐出一堆数字乱码。以下是我目前掌握的情况:

import java.util.*;


public class OddAbundant {
static Scanner input = new Scanner(System.in);

public static void findOddAbundant(){
    System.out.println("Please enter the start of the range you want to test for odd abundant integers");
    int startRange = input.nextInt();
    System.out.println("Please enter the end of the range you want to test for odd abundant integers");
    int endRange = input.nextInt();
    for(int b = startRange; b <= endRange; b++) {
        if (Sigma.Sigma(b)<(b*2))   
            continue;
        else{
            if (b % 2 == 1)
                System.out.println(b);
        }


    }

}
public static void main(String[] args) {
    findOddAbundant();


    }

}
import java.util.*;
公共课{
静态扫描仪输入=新扫描仪(System.in);
公共静态void findOddAbundant(){
System.out.println(“请输入要测试奇数富余整数的范围的起始值”);
int startRange=input.nextInt();
System.out.println(“请输入要测试奇数富余整数的范围的末尾”);
int endRange=input.nextInt();

对于(intb=startRange;b这个愚蠢的问题,从Sigma函数中删除print语句

public static int Sigma(int s){
    int a = 0;
    for(int i=1;i<=s;i++){
        if(s%i==0)
            a = a + i;

    }
    System.out.print(a); //why do you have it here?
    return a;

}
公共静态int-Sigma(int-s){
int a=0;

对于(int i=1;i您得到的是什么输出?@nommyravian-我的输出是一个非常大的数字字符串,远远超过了我输入的endrange。当我输入范围1-50时,我得到了这个结果:请输入要测试奇数多整数的范围的开始1请输入结束要测试奇数富余整数的范围50 1343 765 1287 15139 181211 281413 2424415 311817 392019 423221 362423 603125 424027 563029 723231 634833 544835 913837 605639 904241 964443 847845 724847 1245749 93您能快速告诉我您期望的输出是什么吗?以较小的范围为例。@nommyravian我希望输出是在给定的范围内,由sigma函数产生的所有奇数和大量数。我在我的原始帖子中出错,但我现在编辑了它。例如,sigma(12)=1+2+3+4+6+12=28,大于2*12,所以它被认为是一个富足的数字。但是,12不是奇数,所以我不想让我的方法显示它。我查了一下,第一个奇数富足的数字是965,所以如果我给我的方法一个范围是1-966,那么唯一应该显示的数字是965。这有意义吗?在我在那里有print语句,因为我希望sigma类自己运行(而不仅仅是被不同的类调用)我想让它打印答案,所以我把命令移到了Sigma类的主方法,它工作得很好。我对编程一般还是很新的,我总是犯一些愚蠢的错误。非常令人沮丧。非常感谢你的帮助。欢迎你,但是请考虑你在Sigma的定义下的Mac的评论。他有话要说。
public static int Sigma(int s){
    int a = 0;
    for(int i=1;i<=s;i++){
        if(s%i==0)
            a = a + i;

    }
    System.out.print(a); //why do you have it here?
    return a;

}