2010-02-14から1日間の記事一覧

Problem 12

#include <iostream> #include <vector> #include <cmath> using namespace std; #define NUM 501 #define DST 100 void primeVector(vector<bool> *pv_table) { pv_table->at(0) = pv_table->at(1) = false; for (vector<bool>::size_type i = 2, end = (vector<bool>::size_type)ceil(sqrt((double)(pv</bool></bool></bool></cmath></vector></iostream>…

Problem 11

#include <iostream> #include <sstream> using namespace std; #define CLM 20 #define ROW 20 #define MAT "\ 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 \ 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 \ 81 49 31 73 55 79 14 29 93 71</sstream></iostream>…

Problem 10

#include <iostream> #include <vector> #include <cmath> using namespace std; #define NUM 2000000 #define DST 100000 void primeVector(vector<bool> *pv_table) { pv_table->at(0) = pv_table->at(1) = false; for (vector<bool>::size_type i = 2, end = (vector<bool>::size_type)ceil(sqrt((dou</bool></bool></bool></cmath></vector></iostream>…

Problem 9

#include <iostream> #include <cmath> using namespace std; #define SUM 1000 int main(int argc, char **argv) { int ans = -1; bool f = false; for (int a = 1; a < SUM; a++) { for (int b = a+1; b < SUM; b++) { int c = SUM - (a+b); if (a > b || b > c) { break; }</cmath></iostream>…

Problem 8

#include <iostream> #include <string> using namespace std; #define NUM "\ 73167176531330624919225119674426574742355349194934\ 96983520312774506326239578318016984801869478851843\ 85861560789112949495459501737958331952853208805511\ 125406987471585238630507156</string></iostream>…

Problem 7

#include <iostream> #include <vector> #include <cmath> using namespace std; #define NUM 10001 #define DST 100 void primeVector(vector<bool> *pv_table) { pv_table->at(0) = pv_table->at(1) = false; for (vector<bool>::size_type i = 2, end = (vector<bool>::size_type)ceil(sqrt((double)(</bool></bool></bool></cmath></vector></iostream>…

Problem 6

#include <iostream> #include <cmath> using namespace std; #define NUM 100 int main(int argc, char **argv) { double sp; // 和の二乗 double ps; // 二乗数の和 // 和の二乗 sp = 0; for (int i = 1; i <= NUM; i++) { sp += i; } sp = pow(sp, 2.0); // 二乗数の和 ps </cmath></iostream>…

Problem 5

#include <iostream> #include <vector> #include <cmath> using namespace std; #define NUM 20 // 素数テーブルの作成 void primeTable(int l, bool t_prime[]) { unsigned int size = (unsigned int)ceil(sqrt((double)NUM)); // 篩の大きさ memset(t_prime, true, NUM); // 篩にか</cmath></vector></iostream>…

Problem 4

斜めに総当たり戦する感じです. #include <iostream> #include <cmath> using namespace std; #define MAX 999 bool isPalindrome(int n) { bool f = false; if (100000 <= n && n <= 999999) { char l[4], r[4]; // 下3桁を反転 for (int i = 0; i < 3; i++) { r[i] = '0' +</cmath></iostream>…

Problem 3

篩も懐かしいねー #include <iostream> #include <cmath> using namespace std; #define NUM 600851475143 int main(int argc, char ** argv) { unsigned int size = (unsigned int)ceil(sqrt((double)NUM)); // 篩の大きさ bool *t_prime = new bool [size]; // 素数テーブル</cmath></iostream>…

Problem 2

フィボナッチさん懐かしいねー #include <iostream> #include <vector> using namespace std; #define LIMIT 4000000 int main(int argc, char **argv) { vector<int> vf; // フィボナッチ数列 vf.push_back(1); vf.push_back(2); while (1) { vector<int>::size_type e = vf.size(); vf.</int></int></vector></iostream>…

Problem 1

set を使っているのは単に使ってみたかっただけです. #include <iostream> #include <set> using namespace std; #define NUM 1000 int main(int argc, char **argv) { set<int> s; for (int i = 3; i < NUM; i+=3) { s.insert(i); } for (int i = 5; i < NUM; i+=5) { s.insert</int></set></iostream>…