public class HomeWork {
2题 写⼀个函数,接收⼀个整数,输出这个整数的所有因⼦。
public static void main(String[] args) {
// TODO Auto-generated method stub
//question2(35);
//int count=question5(456);
//System.out.println(“位数:”+count);
//question6();
printNum(12);
}
public static void question2(int num){
//打印出所有因子
for(int i=2; i<num; i++){
if(num%i==0){
System.out.print(i+" ");
}
}
}
//5题 写⼀个函数,接收⼀个整数,输出这个整数是⼏位数。
public static int question5(int num){
//321
//降位的思路
int count=1;
int newNum=num/10;
while(newNum!=0){
count++;
newNum=newNum/10;
}
return count;
}
//6、 求⼀个三位数,该三位数等与其每位数字的阶乘之和。
public static void question6(){
for(int i=100; i<=999; i++){
//取出i这个数各个位上的数
int first=i%10;
int second=i/10%10;
int third=i/100;
//调用方法计算阶乘
int result1=factory(first);
int result2=factory(second);
int result3=factory(third);
if(result1+result2+result3==i){
System.out.println(i);
}
}
}
//计算一个数的阶乘
public static int factory(int num){
if(num==0){
return 0;
}
if(num==1){
return 1;
}
return num*factory(num-1);
}
//7题 哥得巴赫猜想
public static void printNum(int num){
for(int i=3;i<num/2+1; i++){
int add=num-i;
//判断i add 都是质数
boolean result1=isNum(i);
boolean result2=isNum(add);
if(result1==true && result2==true){
System.out.println(i+" "+add);
}
}
}
//判断一个数是否是素数
public static boolean isNum(int num){
boolean flag=true;
for(int i=2;i<num; i++){
if(num%i==0){
flag=false;
break;
}
}
return flag;
}
}