首页 > 代码库 > 欧拉计划(Euler Project)——第一题到第三题

欧拉计划(Euler Project)——第一题到第三题

题目一:

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

  本题总结:

  1. int最大20亿,long型一定要加--L,否者编译通过不了
  2. 找出质数(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;      }  }  

  



 

 

 

欧拉计划(Euler Project)——第一题到第三题