• <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 閱讀(439) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithmMathematics

            国产精品禁18久久久夂久| 狠狠色噜噜色狠狠狠综合久久| 天天躁日日躁狠狠久久 | 久久电影网一区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 无码乱码观看精品久久| 日韩乱码人妻无码中文字幕久久| 青青草原综合久久大伊人精品| 午夜精品久久久久久影视777| 一本久久a久久精品亚洲| AA级片免费看视频久久| 久久久久久久波多野结衣高潮| 国产精品美女久久久| 无码任你躁久久久久久久| 国产精品久久久久AV福利动漫| 综合久久精品色| 亚洲欧洲久久久精品| 久久久久四虎国产精品| 伊人久久久AV老熟妇色| 欧美久久一区二区三区| 国产91久久综合| 久久国产成人精品麻豆| 精品久久久中文字幕人妻| 久久久久久亚洲精品不卡 | 超级碰久久免费公开视频| av色综合久久天堂av色综合在| 久久精品一区二区三区中文字幕| 97精品久久天干天天天按摩| 无码人妻精品一区二区三区久久| 日本精品久久久久久久久免费| 亚洲嫩草影院久久精品| 久久99热国产这有精品| 精品久久久久久中文字幕人妻最新 | 久久午夜伦鲁片免费无码| 久久国产免费直播| 亚洲综合熟女久久久30p| 久久综合视频网| 久久涩综合| 精品综合久久久久久97| 久久中文字幕人妻熟av女| 一级A毛片免费观看久久精品|