查看所有50道基础算法题请看:
Java的50道基础算法题
package Demo45Divided_By_Nine;
import java.util.Scanner;
/**
* 判断一个素数能被几个9整除。
*/
/*
分析:该题判断一个素数可以被几个9整除,需要判断两点,一个是判断一个数是否是素数,一个是判断它能不能被9整除,如果可以整除
则需要计数。可以将判断一个数字是否是素数的方法抽取出来,将判断一个数可以被几个9整除的方法也抽取出来。
但是这道题有诈,因为既然是素数,那么就是除了1和它本身之外没有能够整除它的,所以该题的解永远为0.
记住,9不是素数。
*/
public class Divided_By_Nine {
public static void main(String[] args) {
// 获取用户输入
Scanner sc = new Scanner(System.in);
System.out.println("请您输入一个素数,我会判断这个数可以被几个9整除:");
int number = sc.nextInt();
if(IsPrimer(number)){
System.out.println("该数可以被"+DNine(number)+"个9整除。");
}else{
System.out.println("您输入的不是素数");
}
}
/**
* 判断传入的数字是否是素数,用来判断用户输入的是否是素数,如果是素数就进行整除9的操作
* 否则,则提醒用户输入的不是素数
* @param number
* @return
*/
public static boolean IsPrimer(int number){
boolean flag = true;
for (int i = 2; i < number; i++) {
if(number % i == 0){
return false;
}
}
return flag;
}
/**
* 计算该素数能被几个9整除,返回计数
* @param number
* @return
*/
public static int DNine(int number){
int count = 0;
boolean flag = true;
while (flag){
if(number % 9 == 0){
count++ ;
number = number / 9;
}else{
return count;
}
}
return count;
}
}