欧拉计划(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;  
    }  
}  

  



 

 

原文地址:https://www.cnblogs.com/BoscoGuo/p/5895570.html