代码1:
package chp3;import java.util.Scanner;public class TestAllFactor{ public static void main(String[] args){ System.out.print("请输入一个整数n:"); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for(int i=1;i<=n;i++){ if(n%i==0) //上一行的i只有能被n整除 才是n的因子 System.out.println(i+" "); } }}
或者写一个求因子的普遍函数:
package chp3;import java.util.Scanner;public class TestAllFactor{ public static void main(String[] args){ System.out.print("请输入一个整数n:"); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); getFactor(n); } public static void getFactor(int m){ for(i=1;i<=m;i++){ //如果i<=m/2,则输出的因子不包括那个数本身 if(m%i==0) System.out.println(i+" "); } }}
问题1:为什么i<=m变成i<=m/2,输出的因子就不包括那个数本身了呢
问题2:如果负数也有因子,代码改如何完善