프로그래밍/알고리즘
[프로젝트 오일러] Prob4, Prob5 Prob9, Prob10
Nehoy
2017. 5. 20. 13:23
Prob4
#include <stdio.h>
#include <math.h>
#include <time.h>
int main() {
{ // Hyeon's Code
int res, max = 0, num1, num2, temp1, temp2;
int i, j, k;
clock_t op_t = clock();
for (i = 999; i >= 350; --i) {
for (j = 999; j >= 350; --j) {
res = i * j;
if (res < max) continue;
temp1 = (int)log10(res);
temp2 = (temp1 + 1) / 2;
for (k = 0; k < temp2; ++k) {
num1 = res / (int)pow(10, k) % 10;
num2 = res / (int)pow(10, temp1 - k) % 10;
if (num1 != num2) break;
}
if (k == temp2)
max = res;
}
}
printf("%d\n", max);
printf("Hyeon op_t : %d\n\n", clock() - op_t);
}
{ // zzunsik's Code
int arr[6];
int i, j, res, max = 0;
clock_t op_t = clock();
for (i = 350; i <= 999; i++)
{
for (j = 350; j <= 999; j++)
{
res = i*j;
arr[0] = res / 100000;
arr[1] = (res / 10000) % 10;
arr[2] = (res / 1000) % 10;
arr[3] = (res / 100) % 10;
arr[4] = (res / 10) % 10;
arr[5] = res % 10;
if (arr[0] == arr[5] && arr[1] == arr[4] && arr[2] == arr[3])
{
if (max<res)
max = res;
}
}
}
printf("%d\n", max);
printf("zzunsik op_t : %d\n\n", clock() - op_t);
}
return 0;
}
Prob5
#include <stdio.h>
int main()
{
int i = 0, j;
while (++i) {
for (j = 1; j <= 20; j++) {
if (i % j != 0)
break;
}
if (j > 20) break;
}
printf("%d\n", i);
}
Prob9 - Python
import math
def func() :
for i in range(1, 10000) :
for j in range(1, 10000) :
temp = math.sqrt(pow(i, 2) + pow(j, 2))
if i + j + temp == 1000 :
print "{0} {1} {2} ".format(i, j, temp)
return i * j * temp
print func()
Prob10
#include <stdio.h>
int main() {
char prime[2000000] = {0, };
long long i, j, res = 0;
prime[0] = prime[1] = 1;
for (i = 2; i < 2000000; i++) {
if (prime[i])
continue;
res += i;
for (j = i * 2; j < 2000000; j += i)
prime[j] = 1;
}
printf("res : %lld\n", res);
return 0;
}