• <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>
            posts - 16,comments - 0,trackbacks - 0
            給出 2n 個數,求最大的 x 滿足 x!%M = 0 ,其中 M = a1^b1*a2^b2*a3^b3…*an^bn 。

            Input

            In the first line is an integer T (1<=T<=50) indicating the number of test cases.
            Each test case begins with an integer n (1<=n<=100), then followed n lines. Each line contains two numbers ai and bi (1 <= ai <= 100, 1<=bi<=10000000000000)

            Output

            For each test case output the result x in one line.

            Source
            2010 Asia Regional Hangzhou Site Online Contest
            #?include?<stdio.h>
            #?include?
            <string.h>
            #?include?
            <math.h>

            #?define?N?
            101
            typedef?
            long?long?int?LL;

            int?n;
            /*******************************************************/
            int?p[50],?top?=?0;
            int?isPrime(int?x)
            {
            ????????????????
            int?i;
            ????????????????
            if?(x%2==0)?return?x==2;
            ????????????????
            if?(x%3==0)?return?x==3;
            ????????????????
            if?(x%5==0)?return?x==5;
            ????????????????
            for?(i?=?7;?i?<?x;?i?+=?5)
            ????????????????????????????????
            if?(x%i?==?0)?return?0;
            ????????????????
            return?1;
            }

            void?pre(void)
            {
            ????????????????
            int?i;
            ????????????????
            for?(i?=?2;?i?<?N;?++i)
            ????????????????????????????????
            if?(isPrime(i))?p[top++]?=?i;
            }
            /*******************************************************/
            LL?pn[
            50];
            void?init(void)
            {
            ????????????????
            int?i,?j,?x;
            ????????????????LL?cnt;
            ????????????????LL?num;
            ????????????????memset(pn,?
            0,?sizeof(pn));
            ????????????????scanf(
            "%d",?&n);
            ????????????????
            for?(i?=?0;?i?<?n;?++i)
            ????????????????{
            ????????????????????????????????scanf(
            "%d%I64d",?&x,?&num);
            ????????????????????????????????
            for?(j?=?0;?j?<?top;?++j)
            ????????????????????????????????{
            ????????????????????????????????????????????????
            if?(x%p[j]?==?0)
            ????????????????????????????????????????????????{
            ????????????????????????????????????????????????????????????????cnt?
            =?0;
            ????????????????????????????????????????????????????????????????
            while?(x%p[j]==0)?++cnt,?x/=p[j];
            ????????????????????????????????????????????????????????????????pn[j]?
            +=?cnt*num;
            ????????????????????????????????????????????????}
            ????????????????????????????????}
            ????????????????}
            }
            LL?Max(LL?x,?LL?y)
            {
            ????????????????
            return?x>y???x:y;
            }

            LL?mypow(
            int?pr,?int?cnt)
            {
            ????????????????LL?ret?
            =?1;
            ????????????????
            while?(cnt?>?0)?--cnt,?ret?*=?pr;
            ????????????????
            return?ret;
            }

            LL?cal(
            int?pr,?LL?tot)
            {
            ????????????????
            int?tmp;
            ????????????????LL?ppow?
            =?0,?temp;
            ????????????????
            while?(tot?>?0)
            ????????????????{
            ????????????????????????????????tmp?
            =?(int)floor(log(tot*(pr-1)+1)/log(pr))+1;
            ????????????????????????????????
            while?((mypow(pr,?tmp)-1)/(pr-1)?>?tot)?--tmp;
            ????????????????????????????????temp?
            =?mypow(pr,?tmp);
            ????????????????????????????????ppow?
            +=?temp;
            ????????????????????????????????tot?
            -=?(temp-1)/(pr-1);
            ????????????????}
            ????????????????
            return?ppow;
            }
            void?solve(void)
            {
            ????????????????
            int?i;
            ????????????????LL?ans?
            =?0;
            ????????????????
            for?(i?=?0;?i?<?top;?++i)?if?(pn[i]?!=?0)
            ????????????????????????????????????????????????ans?
            =?Max(ans,?cal(p[i],?pn[i]));
            ????????????????printf(
            "%I64d\n",?ans);
            }

            int?main()
            {
            ????????????????
            int?T;
            ????????????????pre();
            ????????????????scanf(
            "%d",?&T);
            ????????????????
            while?(T--)?init(),?solve();

            ????????????????
            return?0;
            }

            posted on 2012-09-08 16:01 yajunw 閱讀(186) 評論(0)  編輯 收藏 引用
            久久精品国产免费观看| 97久久精品人人做人人爽| 国产精品久久久天天影视香蕉| 久久国产精品99精品国产987| 99久久精品费精品国产| 性高朝久久久久久久久久| 亚洲伊人久久大香线蕉综合图片| 99精品久久精品一区二区| 精品多毛少妇人妻AV免费久久 | 亚洲第一极品精品无码久久| 国产精品对白刺激久久久| 久久精品国产精品亚洲人人| 亚洲国产美女精品久久久久∴ | 久久播电影网| 日韩精品久久久久久免费| 久久精品国产72国产精福利| 久久精品亚洲一区二区三区浴池 | 亚洲美日韩Av中文字幕无码久久久妻妇 | 精品久久人妻av中文字幕| 久久久久国产精品三级网| 97久久超碰国产精品旧版| 伊人久久大香线蕉av不卡| 久久久精品久久久久特色影视| A狠狠久久蜜臀婷色中文网| 国产69精品久久久久观看软件| A级毛片无码久久精品免费| 日韩乱码人妻无码中文字幕久久 | 91精品国产91久久久久久| 天天躁日日躁狠狠久久| 亚洲精品tv久久久久| 久久精品国产欧美日韩| 99久久免费国产精品热| 亚洲AV成人无码久久精品老人| 色狠狠久久综合网| 色偷偷88欧美精品久久久| 久久伊人影视| 伊人久久无码精品中文字幕| 色诱久久av| 久久人人爽人人人人爽AV| 狠狠色噜噜色狠狠狠综合久久 | 狠狠色丁香婷婷久久综合五月|