题目一:
10以下的自然数中,属于3和5的倍数的有3,5,6和9,它们之和是23.
找出1000以下的自然数中,属于3和5的倍数的数字之和。
package Blog1;
public class First {
/**
* 10以下的自然数中,属于3和5的倍数的有3,5,6和9,它们之和是23.找出1000以下的自然数中,属于3和5的倍数的数字之和。
*/
public static void main(String[] args) {
int sum=0;
for (int i=0;i<1000;i++){
if(i%3==0||i%5==0){
sum+=i;
}
}
System.out.println(sum);
}
}
233168
本题总结:
判断语句要善于用逻辑运算符。
题目二:
斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。
package Blog1;
import java.util.ArrayList;
public class Second {
/**
* 斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。
*/
public static void main(String[] args) {
int a=1,b=2;
int sum=0;
while(b<4000000){
if(b%2==0){
sum+=b;
}
b=a+b;
a=b-a;
}
System.out.println(sum);
}
}
本题总结
不要把问题复杂化:要目的明确,善于用while循环。
题目三:
13195的质数因子有5,7,13和29.
600851475143的最大质数因子是多少?
package Blog1;
/**
* 13195的质数因子有5,7,13和29.600851475143的最大质数因子是多少?
*/
public class Third {
private static long JUG=600851475143L;
public static void main(String[] args) {
for(long i=1L;i<=JUG;i++){
if(JUG%i==0&&ifprime(i)){
System.out.println(i);
}
}
}
public static boolean ifprime(long temp){
boolean flag=true;
if(temp%2!=0L){
for(long i=2L;i<=(temp+1)/2;i++){
if(temp%i==0L){
flag=false;
}
}
}
return flag;
}
}
6857
本题总结:
- int最大20亿,long型一定要加--L,否者编译通过不了
- 找出质数(int范围内)的方法优化如下
public static boolean isPrime(int a) {
boolean flag = true;
if (a < 2) {// 素数不小于2
return false;
} else {
for (int i = 2; i <= Math.sqrt(a); i++) { //循环到平方根即可
if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
flag = false;
break;// 跳出循环
}
}
}
return flag;
}
}