zoukankan      html  css  js  c++  java
  • UVa 106 Fermat vs. Pythagoras(毕达哥拉斯定理)

    题意:

    给一个正整数N,x2 + y2 = z2

    其中x,y和Z都限定为正整数且小于等于N。

    你要计算出所有满足x < y < z的三元组(x,y,z)的数量,并且使得x,y和z两两互质,

    即没有大于1的公因数。你还要计算出所有满足下面条件的p的数量:0 < p ≤ N,且p没有在所有这样的三元组中出现(并不限定为两两互质的三元组)

    思路:

    http://www.cnblogs.com/devymex/archive/2010/08/07/1799713.html

    #include <cstdio>
    #include <cstring>
    #include <cstring>
    #include <cmath>
    
    bool hash[1000010];
    
    int gcd(int x, int y)
    {
        int k = x % y;
        while (k)
        {
            x = y;
            y = k;
            k = x % y;
        }
        return y;
    }
    
    int main()
    {
        int n;
        while (scanf("%d", &n) != EOF)
        {
            int count = 0;
            memset(hash, false, sizeof(hash));
            for (int i = 1; i <= (int)sqrt(n*1.0); ++i)
                for (int j = i + 1; j <= (int)sqrt(n*1.0); j += 2)
                    if (gcd(i, j) == 1) {
                        int a, b, c;
                        a = j * j - i * i;
                        b = 2 * i * j;
                        c = i * i + j * j;
                        if (c > n)
                            break;
                        for (int k = 1; k * c <= n; ++k)
                            hash[k*a] = true, hash[k*b] = true, hash[k*c] = true;
                        ++count;
                    }
            int ans = 0;
            for (int i = 1; i <= n; ++i)
                if (!hash[i])
                    ++ans;
            printf("%d %d\n", count, ans);
        }
        return 0;
    }

     

    -------------------------------------------------------

    kedebug

    Department of Computer Science and Engineering,

    Shanghai Jiao Tong University

    E-mail: kedebug0@gmail.com

    GitHub: http://github.com/kedebug

    -------------------------------------------------------

  • 相关阅读:
    Pandas学习笔记,如何从DataFrame里选择一个Series
    数据结构_郝斌_数组
    数据结构_郝斌_预备知识2
    数据结构_郝斌_预备知识1
    数据结构_郝斌_目录
    数据结构_郝斌_链表
    Vocabulary Recitation 2020/04/08
    5月11号
    5月10号
    5月9号
  • 原文地址:https://www.cnblogs.com/kedebug/p/2799665.html
Copyright © 2011-2022 走看看