算法练习之求最大公约数与素数判定 最大公约数给定一个数,判断是否为素数 最大公约数 /** * 求最大公约数,辗转相除法 */ public class MaxCommonDivisor { public static void main(String[] args) { int a=42; int b=12; while (true){ if(a<b){ b=b-a; }else if(a>b){ a=a-b; }else{ break; } } System.out.println("a和b的最大公约数为"+a); } } 给定一个数,判断是否为素数 import java.util.ArrayList; import java.util.List; /** * 给定一个数,判断是否为素数,如果不是求出其所有因子个数 */ public class Findprime { public static void main(String[] args) { int a=40; int max=a/2; boolean flag=false; //求因子 List<Integer> list=new ArrayList<>(); for (int i = 2; i <max ; i++) { if(a%i==0){ list.add(i); flag=true; continue; } } if(flag){ System.out.println("a不是素数,因子个数"+list.size()); }else { System.out.println("a是素数"); } } }