mathematics and me

We must know, We will know。 -----Hilbert

显示标签为“java”的博文。显示所有博文
显示标签为“java”的博文。显示所有博文

2014年5月8日星期四

Project Euler答题(6--10)

为防止帖子太长,故新开一贴,继续答题。
2014.5.8

第六题(python):

sum_of_squares = 0
sum_of_number = 0

for i in range(1, 101):
    sum_of_squares = sum_of_squares + i*i

for i in range(1, 101):
    sum_of_number = sum_of_number + i

print sum_of_number**2 - sum_of_squares

2014.5.8

第七题(python):

import math
import random
import sys   
sys.setrecursionlimit(1000000)

# def is_prime(num):
#     i = 2
#     isprime = True
#     while i <= int(math.sqrt(num)):
#         if num % i == 0:
#             isprime = False
#             break
#         i = i + 1
#     return isprime

# def is_prime(num):
#     if num % 2 == 0:
#         return False;
#     i = 3
#     isprime = True
#     while i <= int(math.sqrt(num)):
#         if num % i == 0:
#             isprime =  False
#             break;
#         i = i + 2
#     return isprime

# prime_list = [2, 3]
# def is_prime(num):
#     isprime = True
#     i = 0
#     while i < len(prime_list):
#         if num % prime_list[i] == 0:
#             isprime = False
#             break
#         i = i + 1
#     return isprime

prime_list = [2, 3]
def is_prime(num):
    isprime = True
    i = 0
    while i < len(prime_list) and prime_list[i] <= int(math.sqrt(num)):
        if num % prime_list[i] == 0:
            isprime = False
            break
        i = i + 1
    return isprime

# def is_prime(num):
#     f = 5
#     isprime = True
#     r = int(math.sqrt(num)) + 1
#     if num % 2 == 0 or num % 3 == 0:
#         return False
#     while f <= r:
#         if num % f == 0:
#             isprime = False
#         elif num % (f + 2) == 0:
#             isprime = False
#         f = f + 6
#     return isprime

# Wilson' theroem
# def factorial(n):
#     if (n == 1):
#         return n
#     else:
#         return n * factorial(n - 1)
# def is_prime(num):
#     if (factorial(num - 1) + 1) % num == 0:
#         return True
#     else:
#         return False

# Fermat's little theroem
# def FermatPrimalityTest(number):
#     for time in range(10):
#         randomNumber = random.randint(2, number - 1)
#         if ( pow(randomNumber, number-1, number) != 1 ):
#             return False
#     return True


number_of_prime = 2
num = 5
while True:
    if is_prime(num):
        prime_list.append(num)
        number_of_prime = number_of_prime + 1
        if number_of_prime == 40001:
            print num
            break
    # if is_prime(num) == False and FermatPrimalityTest(num) == True:
    #     print num
    num = num + 2

2014年3月24日星期一

Project Euler答题(1--5)

发现一个很不错的Project Euler,用空的时候做一做。希望我能坚持。

2014.3.24

第一题(java):

public class ProjectEuler1 {
   public static void main(String[] args) {
        int a = 0;
        int b = 0;
        for(;a < 1000;a++){
            if(a%3 == 0 || a%5 == 0){
         b = b + a;
            }
        }
        System.out.println(b);
   }
}

2014.3.26

第二题(java):

import java.util.ArrayList;

class ProjectEuler2{
    public static void main(String[] args){
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.add(1);
        arrayList.add(2);
        int i = 0;
        while(arrayList.get(i) + arrayList.get(i + 1) < 4000000){
            arrayList.add(arrayList.get(i) + arrayList.get(i + 1));
            i++;
        }
        int b = 0;
        for(int a = 0;a <= (i + 1);a++){
            if(arrayList.get(a)%2 == 0){
                b = b + arrayList.get(a);
            }
        }
        System.out.println(b);
    }
}