• <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)  編輯 收藏 引用
            人妻无码αv中文字幕久久琪琪布| 91精品国产综合久久香蕉| 欧美日韩精品久久久免费观看| 亚洲婷婷国产精品电影人久久 | 亚洲AV日韩AV天堂久久| 无码国产69精品久久久久网站| 久久精品99久久香蕉国产色戒| 91精品国产色综久久| 日韩欧美亚洲综合久久| 国产成人久久激情91| 97精品伊人久久大香线蕉| 久久九九亚洲精品| 久久精品久久久久观看99水蜜桃| 久久精品嫩草影院| 天天爽天天狠久久久综合麻豆| 国产免费福利体检区久久| 色88久久久久高潮综合影院| 日日狠狠久久偷偷色综合免费| 国产精品久久久久久影院| 97久久国产综合精品女不卡| 国产精品久久久99| 国内精品伊人久久久久| 久久亚洲精品国产精品| 久久91精品国产91久| 久久无码精品一区二区三区| 久久国产高清字幕中文| 久久综合噜噜激激的五月天| 久久狠狠爱亚洲综合影院| 久久亚洲精品无码播放| 国产精品热久久无码av| 亚洲综合精品香蕉久久网97| 91久久精品91久久性色| 久久99亚洲网美利坚合众国| 久久久无码精品亚洲日韩蜜臀浪潮| 久久一本综合| 亚洲精品国产自在久久| 人妻精品久久久久中文字幕| 99久久综合国产精品免费| 狠狠色丁香婷婷久久综合| 久久久精品国产| 亚洲国产精品无码久久久不卡|