Skip to content

Instantly share code, notes, and snippets.

#include <math.h>
#include <stdio.h>
#include <set>
typedef std::set<int> Set;
bool is_prime(int a, Set* primes) {
for (Set::const_iterator i = primes->begin();
i != primes->end() && *i <= sqrt(a);
++i) {
@wangkuiyi
wangkuiyi / largest-prime-factor.cc
Created September 6, 2012 10:03
Find the largest prime factor of a number. http://projecteuler.net/problem=3
#include <math.h>
#include <stdio.h>
#include <vector>
typedef std::vector<long> Queue;
long find_smallest_divisor(long number) {
for (long i = 2; i < sqrt(number); ++i) {
if (number % i == 0) {
return i;
@wangkuiyi
wangkuiyi / palindrome-as-product.cc
Created September 6, 2012 13:35
Find the largest palindrome made from the product of two 3-digit numbers. http://projecteuler.net/problem=4
#include <stdio.h>
#include <string>
std::string positive_to_string(int num) {
std::string s;
while (num > 0) {
s.push_back((char)('0' + (num % 10)));
num /= 10;
}
return s;
@wangkuiyi
wangkuiyi / number-divisible-by-numbers.cc
Created September 6, 2012 14:00
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? http://projecteuler.net/problem=5
// Question: What is the smallest number divisible by each of the
// numbers 1 to 20?
//
// I factorize each of the numbers 1 to 20. For example, 12=2*2*3.
// This factorization can be represented by a histogram (2*2 3*1). If
// a number is evenly divisible by 20, it must be a product of at
// least two 2's and a 3. So I accumulate each factorization into a
// histogram by the following rule: if the factorization contains two
// 2's, the accumulation must contain at least two 2's. Then the
// final result is the product of numbers in the accumulation.
@wangkuiyi
wangkuiyi / binary-tree-traversal.cc
Created December 14, 2012 14:05
O(n)-time non-recursive traversal of binary trees without extract space cost.
#include <iostream>
struct Node {
int key;
Node* left;
Node* right;
Node* parent;
Node(int k, Node* l, Node* r) {
key = k;
@wangkuiyi
wangkuiyi / BUILD
Created February 23, 2013 13:40
Go invokes C samples
cc_plugin(
name = 'lda',
srcs = ['lda.c'],
deps = ['#pthread']
)
@wangkuiyi
wangkuiyi / install_mpich_and_plda.bash
Last active March 3, 2016 10:05
Download, Build and Deploy MPICH 3.1 and PLDA 3.1 on Computers in a Cluster
# This script download, build and deploy MPICH 3.1
# (http://www.mpich.org) and pLDA 3.1 (https://code.google.com/p/plda)
# to computers in a cluster.
#
# Usage:
#
# You download and run this script from any directory. For example,
# consider that Alice is running this script to install MPICH and pLDA
# on David's workstation in the role of Steven, she should do:
#
@wangkuiyi
wangkuiyi / pre-commit-clang-format
Last active August 19, 2021 14:04
Git pre-commit hook that invokes clang-format to reformat C/C++/Objective-C source code.
#!/bin/bash
# git pre-commit hook that runs an clang-format stylecheck.
# Features:
# - abort commit when commit does not comply with the style guidelines
# - create a patch of the proposed style changes
# modifications for clang-format by rene.milk@wwu.de
# This file is part of a set of unofficial pre-commit hooks available
# at github.
@wangkuiyi
wangkuiyi / jsonrpc_example.go
Last active August 29, 2015 14:12
JSON RPC Go Example
package main
import (
"errors"
"fmt"
"log"
"net"
"net/rpc"
"net/rpc/jsonrpc"
)
// This simple program shows how to use the write-support branch of
// https://github.com/colinmarc/hdfs/, which accesses HDFS of Hadoop
// 2.2.x throught the native protobuf-based RPC protocol