欧拉计划 | 11~ 题解

版权声明:欢迎转载博客(转载时请附上原文链接^_^) 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 

猜你喜欢

转载自blog.csdn.net/OneLine_/article/details/88849893
今日推荐