我正在尝试创建一种方法,该方法将采用一个数字并使用 sigma 函数确定该数字是否为奇数、丰富的数字。丰富的数字是当放入 sigma 函数时产生的总和大于给定数字的任何数字。
比如 sigma(12) 很丰富,因为 sigma(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();
}
}
我经历了循环,但我不知道出了什么问题。我已经测试了 sigma 方法,如果它对你们有帮助,我可以提供它,并且在给定整数时它确实会吐出正确的值。想法?
这是我的西格玛函数:
import java.util.*;
public class Sigma {
static Scanner input = new Scanner(System.in);
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);
return a;
}
public static void main(String[] args) {
System.out.println("Please enter the number you want to perform the sigma function on");
int s = input.nextInt();
Sigma.Sigma(s);
System.out.print(" is the sum of all the divisors of your input" );
}
}