#includelt;stdio.hgt;
創(chuàng)新互聯公司總部坐落于成都市區(qū),致力網站建設服務有成都網站設計、成都做網站、網絡營銷策劃、網頁設計、網站維護、公眾號搭建、微信小程序定制開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設解決方案。創(chuàng)造真正意義上的網站建設,為互聯網品牌在互動行銷領域創(chuàng)造價值而不懈努力!
int main()
{
int p,r,n,m,temp;
printf("請輸入兩個正整數n,m:");
scanf("%d,%d,",n,m);
if(nlt;m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它們的最大公約數為:%d\n",n);
printf("它們的最小公約數為:%d\n",p/n);
return 0;
}
方法二、//窮舉法解兩個數的最大公約數和最小公倍數
void exp(int num1,int num2){
int x,y,i;
x=num1;
y=num2;
int max=0;//最大公約數
for(i=1;ilt;=num1;i++)
if(num1%i==0num2%i==0)
max=i;
System.out.println("---------------------------------");
System.out.println("利用窮舉法計算所得最大公約數為:"+max);
System.out.println("利用窮舉法計算所得最小公倍數為:"+x*y/max);//最小公倍數
System.out.println("---------------------------------");
}
擴展資料:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#includelt;文件名gt;
2、#include"文件名"
如果需要包含標準庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#includelt;math.hgt;//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發(fā)的源文件,則應該使用第二種格式。
采用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"http://用在當前項目中的函數原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",num1,num2);
if(num1num2)/*交換兩個數,使大數放在num1上*/
{ temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用輾除法,直到b為0為止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
程序設計中的函數
許多程序設計語言中,可以將一段經常需要使用的代碼封裝起來,在需要使用時可以直接調用,這就是程序中的函數。比如在C語言中:
int max(int x,int y)
{
return(xy?x:y;);
}
就是一段比較兩數大小的函數,函數有參數與返回值。C++程序設計中的函數可以分為兩類:帶參數的函數和不帶參數的函數。這兩種參數的聲明、定義也不一樣。
帶有(一個)參數的函數的聲明:
類型名標示符+函數名+(類型標示符+參數)
{
}
不帶參數的函數的聲明:
void+函數名()
{
}
花括號內為函數體。
帶參數的函數有返回值,不帶參數的沒有返回值。
C++中函數的調用:函數必須聲明后才可以被調用。調用格式為:函數名(實參)
調用時函數名后的小括號中的實參必須和聲明函數時的函數括號中的形參個數相同。
有返回值的函數可以進行計算,也可以做為右值進行賦值。
#include
using namespace std;
int f1(int x, inty)
{int z;
return x+y;
}
void main()
{coutf1(50,660)endl
}
C語言中的部分函數
main(主函數)
max(求最大數的函數)
scanf(輸入函數)
printf(輸出函數)
通俗的來理解說就是:在程序中需要c語言函數進行簡易化操作,有了函數大大減少了龐大程序中的錯誤和不清楚問題,例如:我要把加好的數放到函數中去打印,這樣就可用一兩句c語言語句來編寫,否則會相當麻煩要寫上許多條語句
輾轉相除法
輾轉相除法, 又名歐幾里德算法(Euclidean algorithm)乃求兩個正整數之最大公因子的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出現于歐幾里德的《幾何原本》(第VII卷,命題i和ii)中,而在中國則可以追溯至東漢出現的《九章算術》。它并不需要把二數作質因子分解。
輾轉相除法是利用以下性質來確定兩個正整數 a 和 b 的最大公因子的:
1. 若 r 是 a ÷ b 的余數, 則
gcd(a,b) = gcd(b,r)
2. a 和其倍數之最大公因子為 a。
另一種寫法是:
1. a ÷ b,令r為所得余數(0≤r<b)
若 r = 0,算法結束;b 即為答案。
2. 互換:置 a←b,b←r,并返回第一步。
[編輯] 虛擬碼
這個算法可以用遞歸寫成如下:
function gcd(a, b) {
if (a 不整除 b)
return gcd(b, a mod b);
else
return a;
}
或純使用循環(huán):
function gcd(a, b) {
define r as integer;
while b ≠ 0 {
r := a mod b;
a := b;
b := r;
}
return a;
}
其中“a mod b”是指取 a ÷ b 的余數。
例如,123456 和 7890 的最大公因子是 6, 這可由下列步驟看出:
a---------------b--------------a mod b
123456----------7890-----------5106
7890------------5106-----------2784
5106------------2784-----------2322
2784------------2322-----------462
2322------------462------------12
462-------------12-------------6
12--------------6--------------0
只要可計算余數都可用輾轉相除法來求最大公因子。這包括多項式、復整數及所有歐幾里德定義域(Euclidean domain)。
輾轉相除法的運算速度為 O(n2),其中 n 為輸入數值的位數。