0%
前言
通过递归的方法求一个数是否是质数
源代码
未使用递归
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package com;
import java.util.Scanner;
public class ApplicationDefault {
public static void main(String[] args) { System.out.println("输入一个数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); boolean flag = true; for (int i = 0; i < num; i++) { if (i==0 || i==1) { continue; } if (num%i==0) { flag = false; break; } } if (flag) { System.out.println("是质数"); } else { System.out.println("不是质数"); } sc.close(); } }
|
使用递归
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| package com;
import java.util.Scanner;
public class Application {
public static void main(String[] args) { System.out.println("输入一个数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); if (num==0) { System.out.println("既不是质数,也不是合数"); } else if (num==1) { System.out.println("是质数"); } else if (num==2) { System.out.println("是质数"); } else if (num<0) { System.out.println("输入的数字有误"); } else { boolean flag = isPrime(num); if (flag) { System.out.println("是质数"); } else { System.out.println("不是质数"); } } sc.close(); } static int point = 2; public static boolean isPrime(int num) { if (point==(num-1)) { return true; } if (num%point==0) { return false; } point++; return true&&isPrime(num); } }
|
完成