• <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

            欧美一级久久久久久久大| 色综合久久久久综合99| 久久精品亚洲一区二区三区浴池 | 亚洲国产成人精品无码久久久久久综合| 国产午夜精品久久久久免费视| 久久亚洲欧美日本精品| 久久九九久精品国产免费直播| 久久亚洲AV无码精品色午夜| 久久精品无码一区二区无码 | 国内精品久久久久影院亚洲| 久久精品亚洲一区二区三区浴池 | 久久久久亚洲精品无码蜜桃| 亚洲嫩草影院久久精品| 久久香综合精品久久伊人| 国产一久久香蕉国产线看观看| 污污内射久久一区二区欧美日韩| 久久精品国产亚洲AV影院 | 狠狠色丁香久久综合五月| 久久久久亚洲AV成人网| 久久久久人妻精品一区 | 国产69精品久久久久9999APGF| 久久无码av三级| 99久久久国产精品免费无卡顿 | 久久精品国产精品亚洲精品 | 久久香综合精品久久伊人| 色噜噜狠狠先锋影音久久| 日韩久久久久久中文人妻| 久久午夜免费视频| 日本精品久久久久久久久免费| 成人综合伊人五月婷久久| 人妻少妇久久中文字幕| 亚洲狠狠婷婷综合久久久久| 一级做a爰片久久毛片毛片| segui久久国产精品| 久久精品国产一区| 久久国产精品99久久久久久老狼| 久久精品国产亚洲av日韩| 久久AV高清无码| 久久青草国产精品一区| 99久久国产主播综合精品| 国内精品久久久久久久久|