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

            藍(lán)牙博客

            i want to be a coder~

               :: 首頁(yè) ::  ::  :: 管理

            搜索

            •  

            最新評(píng)論

            浙大1390 素?cái)?shù)問題

            1390素?cái)?shù)問題
            Time Limit:1000MS  Memory Limit:32768K


            Description:
            任何一個(gè)整數(shù),都可以有多個(gè)素?cái)?shù)相乘,現(xiàn)在給你一個(gè)數(shù)N(1< N<=65535),請(qǐng)你把它分成多個(gè)素?cái)?shù)相乘。

            Input:
            輸入一個(gè)整數(shù)N,輸入0表示結(jié)束.
            Output:
            輸出相應(yīng)的結(jié)果.
            Sample Input:
            2
            12
            16
            65535
            0
            Sample Output:
            2
            2*2*3
            2*2*2*2
            3*5*17*257

            解答:
            #include <iostream>
            #include <cmath>
            using namespace std;
            bool prime(int x)
            {
              if(x==2) return true;
              for(int i=2;i<=sqrt((float) x);i++)
              //如果為i<t,輸入16輸出為2*2*4
              //因?yàn)椋瑂qrt(4)等于2時(shí)就退出循環(huán)了,于是程序?qū)?也當(dāng)作了素?cái)?shù)
              {
                if(x%i==0)
                return false;
                    
              }
               return true;

            void f(int x)
            { int tag=2,flag=0;
              for(;;)
             {
               if(prime(x))
                {
                if(flag>0) cout<<'*';
                cout<<x<<endl;
                return;//跳到無限循環(huán)的唯一地方
                }
               if(x%tag==0)
                {
                 if(flag>0) cout<<'*';         
                 cout<<tag;
                 x/=tag;
                 flag++;
                }
               else
               {   tag++;//沒有這一句,輸入65535進(jìn)入死循環(huán)
             
                   while(!prime(tag))
                   tag++;
               }         
             }


                 

            int main()
            {int t;
            while(cin>>t)
            {
             if(!t) break;
             f(t);
                         
                        
            }
              system("pause");
               return 0;
            }
            //用VC出現(xiàn)編譯錯(cuò)誤,用GCC提交成功,
            //因?yàn)閟qrt函數(shù)給的參數(shù)要轉(zhuǎn)化為浮點(diǎn)數(shù)

             

            解答二:

            #include <iostream>
            #include <cmath>
            using namespace std;
            bool prime(int x)
            {
             if(x==2) return true;
             int q=sqrt( (double)x );//注意這里的轉(zhuǎn)化
             for(int i=2;i<=q;++i)
              if(x%i==0) return false;
              return true;
            }
            void f(int x)
            {
             int ans=0;
             int tag=2;
             while(1)//變化后的數(shù)要重新拿去用if語(yǔ)句做判斷就需要一個(gè)循環(huán)
                {
              if(prime(x))
              {
               if(ans>0) cout<<'*';
               cout<<x<<endl;
               return ;
              }
              if(x%tag==0)//不是素?cái)?shù)跳到這里,先除以最小的素?cái)?shù)2
                    //如果既不是素?cái)?shù),也不是被2整除,再跳到else部分,讓除數(shù)自增到一個(gè)較大的素?cái)?shù)
              {
               if(ans>0) cout<<'*';
               cout<<tag;
               x/=tag;
               ++ans;//用來控制什么時(shí)候輸出*這個(gè)符號(hào)
              }
              else
              {
               ++tag;
               while(!prime(tag))//當(dāng)除數(shù)不是素?cái)?shù)時(shí)將其自加直到為素?cái)?shù)為止
                ++tag;
              }
             }
            }
            int main()
            {
             int n,tag=0,i;
             while(cin>>n)
             {
              if(!n) break;
              f(n);
             }
             return 0;
            }


            文章來源:http://www.cnblogs.com/qnbs1/archive/2010/03/21/1691077.html
            posted on 2010-03-21 17:58 藍(lán)牙 閱讀(88) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产精品久久久99| 99精品国产在热久久无毒不卡| 中文精品久久久久国产网址| AAA级久久久精品无码区| 久久这里的只有是精品23| 久久久老熟女一区二区三区| 93精91精品国产综合久久香蕉| 国产精品久久久久久久久软件| 久久久精品国产sm调教网站 | 欧美亚洲国产精品久久高清 | 久久99亚洲网美利坚合众国| 9999国产精品欧美久久久久久| 久久精品国产亚洲av麻豆图片 | 亚洲AV日韩精品久久久久| 国产精品久久久久久搜索| 精品伊人久久久| 国产成人无码精品久久久久免费 | 久久99国产精一区二区三区| 日本加勒比久久精品| 亚洲综合久久综合激情久久| 无码人妻久久一区二区三区免费| 国产精品青草久久久久福利99| 99久久99久久精品免费看蜜桃| 人妻精品久久久久中文字幕一冢本| 久久久精品波多野结衣| 精品综合久久久久久88小说 | 久久精品国产99国产精品澳门| 久久AV无码精品人妻糸列| 亚洲人成网站999久久久综合 | 蜜臀久久99精品久久久久久| 99久久婷婷国产一区二区| 久久精品中文闷骚内射| avtt天堂网久久精品| 久久丫精品国产亚洲av不卡 | 久久精品国产亚洲一区二区| 亚洲中文字幕无码久久精品1| 久久只这里是精品66| 久久精品国产亚洲AV久| 亚洲欧美伊人久久综合一区二区| 久久久久亚洲AV无码观看| 久久99久久99精品免视看动漫 |