1.编写程序验证:
任何大于2的偶数都可以表示成两个素数之和: 16 = 13 + 3 16=5 + 11
任何大于5的奇数都可以表示成三个素数之和: 11 = 2 + 2 + 7 11 = 3 + 3 + 52.中文金额大写
读入一个浮点数值,将其转化为中文大写形式:比如:123.45 转化为:壹佰贰拾叁元肆角伍分
针对下面的情况进一步完善程序:
1.当金额为整数时,只表示整数部分,省掉小数部分,并添加“整”字,例如:123表示:壹佰贰拾叁元整
2.当金额中含有连续的0时,只需要写一个“零”即可,例如,10005表示为“壹万零伍元整”.
3.10的省略表示形式。例如,110表示为“壹佰壹拾元整”,而10则表示为“拾元整”.
任何大于2的偶数都可以表示成两个素数之和: 16 = 13 + 3 16=5 + 11
任何大于5的奇数都可以表示成三个素数之和: 11 = 2 + 2 + 7 11 = 3 + 3 + 52.中文金额大写
读入一个浮点数值,将其转化为中文大写形式:比如:123.45 转化为:壹佰贰拾叁元肆角伍分
针对下面的情况进一步完善程序:
1.当金额为整数时,只表示整数部分,省掉小数部分,并添加“整”字,例如:123表示:壹佰贰拾叁元整
2.当金额中含有连续的0时,只需要写一个“零”即可,例如,10005表示为“壹万零伍元整”.
3.10的省略表示形式。例如,110表示为“壹佰壹拾元整”,而10则表示为“拾元整”.
public class Goldbach {
private int count;
public void setCount(int count){
this.count = count;
}
public int getCount(){
return count;
}
public void inc(){
count++;
}
//判断是不是两个素数之和,如果是则返回true
public boolean isSumOfPrime(int even){
boolean sumOfPrime = false;
Prime prime = new Prime();
int factor1 = 0;
int factor2 = 0;
for(int i = 2; i <= even/2; i++){
factor1 = i;
factor2 = even - i;
if(prime.isPrime(factor1) && prime.isPrime(factor2)){
System.out.println(even + " = " + factor1 + " + " + factor2);
sumOfPrime = true;
break;
}
}
return sumOfPrime;
}
public static void main(String[] args){
Goldbach num = new Goldbach();
num.setCount(0);
for(int i = 4; i <= 10000; i += 2){
if(num.isSumOfPrime(i))
num.inc();
}
}}
任何大于2的偶数都可以表示成两个素数之和
验证4到10000的
public class Prime {
//判断num是不是素数,是则返回true
public boolean isPrime(int num){
if(num == 2 || num == 3)
return true;
if(num%2 == 0)//num为偶数
return false;
//num为奇数
int d = 3;
while(d <= Math.sqrt(num) && num % d != 0){
d += 2;
}
if(num % d != 0)
return true;
return false;
}}