gpt4 book ai didi

java - Tau 数算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:41 27 4
gpt4 key购买 nike

我正在尝试制作一个程序,让用户输入 2 个数字,然后该程序会在此间隙中给出 tau 数字。

  • “头”数是除以它的除数总数的数。例如(1,2,3,4,6,8,12,24)所有这些数都可以整除24。有8个数那么 24 可以除以 8。所以我们可以说 24 是一个 tau 数。*

我认为在第二个 for 循环中有一个错误,但我不明白它在哪里。

import java.util.Scanner;

public class tauNumber {

public static void main(String [] args){
int start=0,stop=0,count=0;
Scanner input =new Scanner(System.in);
System.out.println("Please enter first number: ");
start=input.nextInt();
System.out.println("Please enter last number: ");
stop=input.nextInt();

for(int i=0+start;i<=stop;i++){

for(int j=1;j<=start;j++){
if(i%j==0){
count++;
}
}
if(start/count==0){
System.out.println(i+" is a tau number" );
}
}
}
}

最佳答案

与其说“tau 编号”,不如将其称为 refactorable number正如@Tunaki 指出的那样。

我建议您将代码拆分为多个函数,以便更好地理解正在发生的事情,我认为这就是您要寻找的:

import java.util.Scanner;

class TauNumber {


public static void main(String[] args){

Scanner input =new Scanner(System.in);
System.out.println("Please enter first number: ");
int start=input.nextInt();
System.out.println("Please enter last number: ");
int stop=input.nextInt();

for(int i=start+1; i<stop; i++){
if(refractorable(i)){
System.out.println("Found tau number: "+ i);
break;
}
}

}

public static boolean refractorable(int number){
if(sumDivisors(number) == 0) return false;

if(number % sumDivisors(number) == 0){
return true;
} else {
return false;
}
}

public static int sumDivisors(int number){
int sum = 0;
for(int i=1; i<=number; i++){
if(number % i == 0){
sum++;
}
}
return sum;
}


}

注意:我还想指出,当您指定“差距”时,您指的是什么意思?我把它当作start < x < stop ,因为那将是差距,但肯定可以是 start < x <= stop .

关于java - Tau 数算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39676949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com