--- tags: 一社一服務 --- # 108題目(B卷) [回目錄](https://hackmd.io/@PeiYun/CppTutorial) > 為了幫(強)助(迫)各位思考,以下僅提供<font color=#f00>部分程式碼</font>,有任何問題歡迎私訊[資訊社IG](https://www.instagram.com/dzif_22nd_/?hl=zh-tw) ## 最大公因數及最小公倍數 ```cpp= int a,b,c,d,e,x,y,z,f; f=a; b=x*y; while(x%y!=0) //x除數 y被除數 { z=x%y; //z餘數 x=y; y=z; } d=b/y; e=d*a; while(y%f!=0) { c=y%f; y=f; f=c; } while(d%a!=0) { c=d%a; d=a; a=c; } cout<<f<<" "<<e/a<<"\n"; ``` ## 兩正整數間質數,並求其總和 ```cpp= int x1,x2,i,j,k,l=0; for(i=x1 ;i<=x2 ;++i ) { for( j=2; j<=i ;++j ) { if(i%j==0 ) { break; } } if(i==j ) { cout<<i<<" "; k++; l+=i; } } cout<<k<<" "<<l; ``` ## 隨機亂數兩十位正整數N跟M,並計算總合 ```cpp= #include <ctime> ``` ```cpp= int x, y, a, c; srand(time(NULL)); x=rand()%(99-10)+10;//大數減小數加小數 y=rand()%(99-10)+10; cout<<x<<" + "<<y<<" = \n"; ``` ```cpp= c=x+y; cin>>a; if(a==c) { cout<<"正確\n"; } else { cout<<"錯誤\n"; } ``` ## 級數 ```cpp= #include <cmath> ``` ```cpp= while(true) { int n; float i,a,ans=0; cout<<"N="; cin>>n; if(n%2==1) { for(float i=1;i<=n;i+=2) { a=1/i; ans=ans+a; } cout<<ans<<"\n"; } else { for(float i=2;i<=n;i+=2) { ans+=i; } cout<<sqrt(ans)<<"\n"; } ```