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

            ACM___________________________

            ______________白白の屋
            posts - 182, comments - 102, trackbacks - 0, articles - 0
            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(24)

            隨筆分類(332)

            隨筆檔案(182)

            FRIENDS

            搜索

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            MiYu原創(chuàng), 轉(zhuǎn)帖請(qǐng)注明 : 轉(zhuǎn)載自 ______________白白の屋

            題目描述:
                     http://acm.hdu.edu.cn/showproblem.php?pid=1286
            題目地址:
            找新朋友

            Time Limit: 
            2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
            Total Submission(s): 
            1868    Accepted Submission(s): 809


            Problem Description
            新年快到了,“豬頭幫協(xié)會(huì)”準(zhǔn)備搞一個(gè)聚會(huì),已經(jīng)知道現(xiàn)有會(huì)員N人,把會(huì)員從1到N編號(hào),其中會(huì)長(zhǎng)的號(hào)碼是N號(hào),凡是和會(huì)長(zhǎng)是老朋友的,那么該會(huì)員的號(hào)碼肯定和N有大于1的公約數(shù),否則都是新朋友,現(xiàn)在會(huì)長(zhǎng)想知道究竟有幾個(gè)新朋友?請(qǐng)你編程序幫會(huì)長(zhǎng)計(jì)算出來(lái)。
             

            Input
            第一行是測(cè)試數(shù)據(jù)的組數(shù)CN(Case number,
            1<CN<10000),接著有CN行正整數(shù)N(1<n<32768),表示會(huì)員人數(shù)。
             

            Output
            對(duì)于每一個(gè)N,輸出一行新朋友的人數(shù),這樣共有CN行輸出。
             

            Sample Input
            2
            25608
            24027
             

            Sample Output
            7680
            16016

            題目分析:
            這題用 gcd 的話,  就 TLE 了,  很無(wú)語(yǔ), 所以只能用篩法了,  因?yàn)?num如果能整除 i  ,i > 1, 那么對(duì)i 的倍數(shù), 肯定有大于1的公約數(shù).
            其實(shí)題目就是求 和 num 互質(zhì) 的 數(shù)的個(gè)數(shù),  可以使用 euler 公式, 0ms 過(guò).
            歐拉公式:
                  如果n的標(biāo)準(zhǔn)素因子分解式是p1^a1*p2^a2*……*pm^am,其中眾pj(j=1,2,……,m)都是素?cái)?shù),
            而且兩兩不等。則有  φ(n)=n(1-1/p1)(1-1/p2)……(1-1/pm)
            φ(n) 為 小于 n ,與n互質(zhì)的數(shù)的個(gè)數(shù).

            篩法代碼:
            #include <iostream>
            using namespace std;
            int p[40000];
            int euler ( int num )
            {
                memset ( p , 
            0sizeof (p) );
                
            int cnt = 0;
                
            for ( int i = 2; i <= num / 2++ i )
                {
                      
            if ( num % i == 0 && p[i] == 0 )
                      { 
                           
            for ( int j = i; j < num; j += i ) 
                           {  
                                 
            if ( p[j] == 0 )
                                 cnt 
            ++;
                                 p[j] 
            = 1 ;
                           }
                      } 
                } 
                
            return num - cnt - 1;
            }
            int main ()
            {
                
            int T;
                scanf ( 
            "%d",&T );
                
            while ( T -- )
                {
                      
            int num;
                      scanf ( 
            "%d",&num );
                      printf ( 
            "%d\n",euler ( num ) );
                }
                
            return 0
            }

            歐拉代碼: ( AC_Quester 神牛代碼  <----0rz  )
            #include <cstdio>
            #include 
            <cmath>
            #include 
            <cstdlib>
            #include 
            <cstring>

            int eular(int n)
            {
                    
            int ret=1,i;
                    
            for (i=2;i*i<=n;i++)
                    {
                            
            if (n%i==0)
                            {
                                    n
            /=i,ret*=i-1;
                                    
            while (n%i==0)
                                            n
            /=i,ret*=i;
                            }
                    }
                    
            if (n>1)
                            ret
            *=n-1;
                    
            return ret;
            }
            int main()
            {
                    
            int n ,a ;
                    scanf(
            "%d",&n);
                    
            while(n--)
                    {
                            scanf(
            "%d",&a);
                            
            int res = eular(a);
                            printf(
            "%d\n",res);
                    }
                    
            return 0;
            }
            日本精品久久久久中文字幕8| 亚洲欧美久久久久9999| 色综合久久久久综合99| 久久婷婷午色综合夜啪| 久久久久久久久无码精品亚洲日韩| 久久青青草原亚洲av无码app| 中文字幕成人精品久久不卡 | 久久成人小视频| 久久精品国产一区二区电影| 久久久久亚洲精品天堂久久久久久| 97久久超碰成人精品网站| 久久久久九国产精品| 久久婷婷人人澡人人爽人人爱| 久久亚洲国产成人影院| 久久影院午夜理论片无码| 99久久精品国产麻豆| 无码人妻久久一区二区三区蜜桃 | 久久精品亚洲精品国产色婷| 久久91精品国产91久久麻豆 | 无码AV波多野结衣久久| 亚洲欧美精品一区久久中文字幕| 久久夜色精品国产亚洲| 久久激情亚洲精品无码?V| 好久久免费视频高清| 99久久精品免费观看国产| 亚洲中文字幕无码久久2017 | 久久青草国产精品一区| 久久婷婷五月综合97色| 曰曰摸天天摸人人看久久久| 亚洲va久久久噜噜噜久久天堂| 久久精品国产精品亚洲精品| 久久精品女人天堂AV麻| 国产午夜精品理论片久久影视 | 国产午夜精品久久久久九九电影| 久久精品国产亚洲AV不卡| 一级女性全黄久久生活片免费 | 久久天天躁狠狠躁夜夜躁2014| 2020最新久久久视精品爱| 久久亚洲2019中文字幕| 日韩av无码久久精品免费| 青青草国产成人久久91网|