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

            segui久久国产精品| 久久99免费视频| 91精品国产91热久久久久福利| 国产精品久久成人影院| www.久久热.com| 久久国产美女免费观看精品 | 青青青国产精品国产精品久久久久| 日本久久久精品中文字幕| 亚洲国产精品久久久久婷婷老年| 久久久久99精品成人片三人毛片 | 久久人人爽人人爽AV片| 久久久久久国产精品无码下载| 久久精品亚洲一区二区三区浴池 | 国产精品久久99| 中文字幕无码久久精品青草| 国产精品女同一区二区久久| 久久久久99这里有精品10| 精品国产91久久久久久久| 理论片午午伦夜理片久久| 久久久久人妻精品一区| 亚洲精品NV久久久久久久久久| 国产国产成人久久精品| 亚洲AV无码一区东京热久久| 久久久精品国产亚洲成人满18免费网站| 要久久爱在线免费观看| 99久久精品影院老鸭窝| 无码久久精品国产亚洲Av影片| 久久久久国产成人精品亚洲午夜| 国产成人久久精品一区二区三区 | 性欧美丰满熟妇XXXX性久久久| 国产激情久久久久影院| 色综合久久中文色婷婷| 99久久精品费精品国产一区二区 | 99久久人妻无码精品系列蜜桃| 日韩精品久久久久久久电影| 久久99国产一区二区三区| 中文字幕久久亚洲一区| 性做久久久久久免费观看| 久久免费看黄a级毛片| 欧美亚洲国产精品久久久久| 一级做a爰片久久毛片毛片|