• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            POJ 3090. Visible Lattice Points

            Visible Lattice Points
            Time Limit: 1000MS Memory Limit: 65536K
            Total Submissions: 4099 Accepted: 2288

            Description

            A lattice point (x, y) in the first quadrant (x and y are integers greater than or equal to 0), other than the origin, is visible from the origin if the line from (0, 0) to (x, y) does not pass through any other lattice point. For example, the point (4, 2) is not visible since the line from the origin passes through (2, 1). The figure below shows the points (x, y) with 0 ≤ x, y ≤ 5 with lines from the origin to the visible points.

            Write a program which, given a value for the size, N, computes the number of visible points (x, y) with 0 ≤ x, yN.

            Input

            The first line of input contains a single integer C (1 ≤ C ≤ 1000) which is the number of datasets that follow.

            Each dataset consists of a single line of input containing a single integer N (1 ≤ N ≤ 1000), which is the size.

            Output

            For each dataset, there is to be one line of output consisting of: the dataset number starting at 1, a single space, the size, a single space and the number of visible points for that size.

            Sample Input

            4
            2
            4
            5
            231

            Sample Output

            1 2 5
            2 4 13
            3 5 21
            4 231 32549

            Source

            Greater New York 2006



             1/*
             2POJ 3090 Visible Lattice Points
             3
             4Farey 數列,歐拉函數。
             5*/

             6
             7
             8#include <stdio.h>
             9#include <string.h>
            10
            11#define  N  1003
            12
            13int prime[ N ], nprime;
            14int fun[ N ], ans[ N ];
            15
            16void init_prime() {
            17        int i, j;
            18        memset( prime, 0sizeof(prime) );
            19        nprime = 0;
            20        for ( i = 2; i < N; ++i ) {
            21                if ( 0 == prime[ i ] ) {
            22                        prime[ nprime++ ] = i;
            23                        for ( j = i+i; j < N; j+=i ) {
            24                                prime[ j ] = 1;
            25                        }

            26                }

            27        }

            28}

            29
            30void init_fun() {
            31        int  i, j;
            32        int t;
            33        for ( i = 1; i < N; ++i ) {
            34                t = i;
            35                for ( j = 0; (j < nprime)&&(prime[j]<=i); ++j ) {
            36                        if ( i % prime[j] == 0 ) {
            37                                t = t * (prime[ j ] - 1/ prime[ j ];
            38                        }

            39                }

            40                fun[ i ] = t;
            41        }

            42        fun[ 1 ] = 0;
            43}

            44
            45void init_ans() {
            46        int i;
            47        ans[ 1 ] = 0;
            48        for ( i = 2; i < N; ++i ) {
            49                ans[ i ] = ans[ i - 1 ] + fun[ i ];
            50        }

            51        for ( i = 1; i < N; ++i ) {
            52                ans[ i ] = ans[ i ] * 2 + 3;
            53        }

            54}

            55
            56int main() {
            57        int n, c, i;
            58        init_prime();
            59        init_fun();
            60        init_ans();
            61
            62        scanf( "%d"&c );
            63        for ( i = 1; i <= c; ++i ) {
            64                scanf( "%d"&n );
            65                printf( "%d %d %d\n", i, n, ans[n] );
            66        }

            67        return 0;
            68}

            69

            posted on 2012-02-29 21:16 coreBugZJ 閱讀(437) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithmMathematics

            老男人久久青草av高清| 99久久精品国产高清一区二区| 精品综合久久久久久97超人| 99久久精品国产免看国产一区| 国产精品禁18久久久夂久| 无码人妻精品一区二区三区久久久| 久久国产精品无码HDAV| 欧美久久综合性欧美| 色综合久久夜色精品国产| 久久九九精品99国产精品| 国产精品九九久久免费视频 | 久久这里只精品国产99热 | 午夜精品久久久久9999高清| 亚洲综合伊人久久大杳蕉| 久久国产精品成人免费| 久久婷婷五月综合97色直播| 国产精品狼人久久久久影院| 久久久久久亚洲Av无码精品专口| 国产精品成人久久久久三级午夜电影 | 久久99九九国产免费看小说| 久久噜噜电影你懂的| 久久精品国产亚洲AV久| 亚洲欧美久久久久9999| 激情综合色综合久久综合| 人妻精品久久无码专区精东影业| 日韩精品无码久久一区二区三| 91精品国产高清久久久久久91 | 女人香蕉久久**毛片精品| 精品人妻久久久久久888| 97精品伊人久久大香线蕉| 无码任你躁久久久久久老妇| 久久精品视屏| 久久久久亚洲AV综合波多野结衣| 91精品久久久久久无码| 91精品国产91久久久久久| 日韩欧美亚洲综合久久影院d3| 久久精品无码专区免费东京热| 热re99久久6国产精品免费| 亚洲AV无码一区东京热久久| 午夜天堂精品久久久久| av无码久久久久久不卡网站|