版权声明:欢迎转载博客(转载时请附上原文链接^_^) https://blog.csdn.net/OneLine_/article/details/88849893
开启第二part的欧拉计划
Problem 11
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
using namespace std;
#define ll long long
ll a[100][100];
int main()
{
ll sum=0;
memset(a,0,sizeof a);
for (int i=0; i<20; i++)
for (int j=0; j<20; j++)
scanf("%d",&a[i][j]);
for (int i=0; i<=16; i++)
for (int j=0; j<=16; j++)
{
sum =max(sum,a[i][j]*a[i+1][j+1]*a[i+2][j+2]*a[i+3][j+3]);
}
for (int i=0; i<20; i++)
for (int j=0; j<=16; j++)
{
sum = max(sum,a[i][j]*a[i][j+1]*a[i][j+2]*a[i][j+3]);
sum = max(sum,a[j][i]*a[j+1][i]*a[j+2][i]*a[j+3][i]);
}
for (int i=0; i<20; i++)
for (int j=19; j>=3; j--)
{
sum = max(sum,a[i][j]*a[i+1][j-1]*a[i+2][j-2]*a[i+3][j-3]);
}
printf("%lld\n",sum);
return 0;
}
70600674
Problem 12
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <bitset>
using namespace std;
#define ll long long
int qq(int x)
{
int ans = 0;
int m = (int)sqrt(x);
for (int i = 1; i <m; i++) {
if (x % i == 0) {
ans += 2;
}
}
if (m * m == x) {
ans++;
}
return ans;
}
int main()
{
int sum = 0;
for (int i = 10000; i < 13000; i++) {
sum = i * (i + 1) / 2;
if (qq(sum)>400)
printf("%d %d\n", sum,qq(sum));
}
return 0;
}
59192640 448
60769800 432
76576500 576
Problem 13
Problem 14
Problem 15