• <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ù)問(wèn)題

            1390素?cái)?shù)問(wèn)題
            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;//跳到無(wú)限循環(huán)的唯一地方
                }
               if(x%tag==0)
                {
                 if(flag>0) cout<<'*';         
                 cout<<tag;
                 x/=tag;
                 flag++;
                }
               else
               {   tag++;//沒(méi)有這一句,輸入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;//用來(lái)控制什么時(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;
            }


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

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


            亚洲欧美成人久久综合中文网| 久久久久亚洲精品天堂| 韩国三级中文字幕hd久久精品| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久久久久亚洲精品不卡| 久久精品国产免费观看| 99精品伊人久久久大香线蕉| 久久精品国产99国产精品导航| 看久久久久久a级毛片| 99久久国产综合精品女同图片| 精品熟女少妇aⅴ免费久久| 一本久久a久久精品综合香蕉| 蜜臀av性久久久久蜜臀aⅴ| 国产成人精品久久一区二区三区av| MM131亚洲国产美女久久| 伊人久久综合成人网| 青青青国产精品国产精品久久久久| 久久精品国产久精国产思思| 精品久久人人做人人爽综合| 久久综合噜噜激激的五月天| 香港aa三级久久三级老师2021国产三级精品三级在 | 日产精品99久久久久久| 久久国产成人午夜AV影院| 久久婷婷五月综合色高清 | 国内精品久久久久久久影视麻豆| 久久久久久久久久久久久久| 久久综合九色欧美综合狠狠| 久久久久免费视频| 99久久精品免费观看国产| 99久久精品国产高清一区二区 | 青青草原综合久久大伊人精品| 亚洲精品国精品久久99热一| 波多野结衣AV无码久久一区| 久久精品国产色蜜蜜麻豆| 久久久久免费精品国产| 精品熟女少妇av免费久久| 欧美一区二区三区久久综| 久久久久亚洲AV无码永不| 久久久久亚洲av无码专区喷水 | 久久久久四虎国产精品| 久久这里只有精品久久|