代码 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:如果负数也有因子,代码改如何完善
来源: http://www.bubuko.com/infodetail-1961715.html