最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用窮舉法求兩個(gè)數(shù)的最大公約數(shù)問(wèn)題

 更新時(shí)間:2022年12月20日 11:16:52   作者:半島鐵盒@  
這篇文章主要介紹了Python使用窮舉法求兩個(gè)數(shù)的最大公約數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用窮舉法求兩個(gè)數(shù)的最大公約數(shù)

for m in range (0,2):
    a = int(input("請(qǐng)輸入一個(gè)數(shù):"))
    b = int(input("請(qǐng)輸入另外一個(gè)數(shù):"))
    #判斷num1與num2的大小
    if a > b:
        #獲取最小值
        min = b
    else:
        #獲取最小值
        min = a
    for i in range(min+1,0,-1):    #倒序
        #滿足公因數(shù)的條件:
        if (a % i == 0) and (b % i == 0):
            c = i
            break
    print('這兩個(gè)數(shù)的最大公約數(shù)是:%d '%c)

窮舉法求N個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)

基本要求

求N個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)。用C或C++或java或python語(yǔ)言實(shí)現(xiàn)程序解決問(wèn)題。

提高要求

思考一個(gè)“求公約數(shù)”和“求公倍數(shù)”之類問(wèn)題的“逆問(wèn)題”,這個(gè)問(wèn)題是這樣的:已知正整數(shù)a0,a1,b0,b1,設(shè)某未知正整數(shù)x滿足:

  • 1、x和a0的最大公約數(shù)是a1;
  • 2、x和b0的最小公倍數(shù)是b1。

Hankson的“逆問(wèn)題”就是求出滿足條件的正整數(shù)x。但稍加思索之后,他發(fā)現(xiàn)這樣的x并不唯一,甚至可能不存在。因此他轉(zhuǎn)而開(kāi)始考慮如何求解滿足條件的x的個(gè)數(shù)。

輸入格式

  • 輸入第一行為一個(gè)正整數(shù)n,表示有n組輸入數(shù)據(jù)。接下來(lái)的n行每行一組輸入數(shù)據(jù),為四個(gè)正整數(shù)a0,a1,b0,b1,每?jī)蓚€(gè)整數(shù)之間用一個(gè)空格隔開(kāi)。輸入數(shù)據(jù)保證a0能被a1整除,b1能被b0整除。

輸出格式

  • 輸出共n行。每組輸入數(shù)據(jù)的輸出結(jié)果占一行,為一個(gè)整數(shù)。
  • 對(duì)于每組數(shù)據(jù):若不存在這樣的x,請(qǐng)輸出0;
  • 若存在這樣的x,請(qǐng)輸出滿足條件的x的個(gè)數(shù);

樣例輸入

2

41 1 96 288

95 1 37 1776

算法設(shè)計(jì)思路

本程序先用窮舉法計(jì)算兩個(gè)數(shù)的最大公約數(shù)或最小公倍數(shù)。從兩個(gè)數(shù)中較小數(shù)開(kāi)始由大到小列舉,直到找到公約數(shù)立即中斷列舉,得到的公約數(shù)便是最大公約數(shù) 。

①定義1:對(duì)兩個(gè)正整數(shù)a,b如果能在區(qū)間[a,0]或[b,0]內(nèi)能找到一個(gè)整數(shù)temp能同時(shí)被a和b所整除,則temp即為最大公約數(shù)。

②定義2:對(duì)兩個(gè)正整數(shù)a,b,如果若干個(gè)a之和或b之和能被b所整除或能被a所整除,則該和數(shù)即為所求的最小公倍數(shù)。

#include<stdio.h>
#define N 1000 ?/*自定義數(shù)組長(zhǎng)度*/
int input(int t[])
{
?? ?int i,n;
?? ?int k=1;
?? ?printf("Please input the count of numbers(n>=2):"); /*輸入計(jì)算值的個(gè)數(shù)*/
?? ?scanf("%d",&n);
?? ?while(k)
?? ?{
?? ??? ?printf("Please input numbers:\n"); ?/*輸入所算值*/
?? ??? ?for(i=0;i<n;i++)
?? ??? ?{
?? ??? ??? ?scanf("%d",&t[i]);
?? ??? ?}
?? ??? ?k=exper(t,n);
?? ?}
?? ?return n;
}
int exper(int t[],int n) ? /*驗(yàn)證函數(shù)*/
{
?? ?int i;
?? ?for(i=0;i<n;i++)
?? ?{
?? ??? ?if(!t[i])
?? ??? ?{
?? ??? ??? ?printf("error(輸入為0)\n");
?? ??? ??? ?return 1;
?? ??? ?}
?? ?}
? ?return 0;
}
int divisor (int a,int b) /*自定義函數(shù)求兩數(shù)的最大公約數(shù)*/
{
? ? int ?temp; ? ? ? ? ?/*定義義整型變量*/
? ? temp=(a>b)?b:a; ? ?/*采種條件運(yùn)算表達(dá)式求出兩個(gè)數(shù)中的最小值*/
? ? while(temp>0)
? ? {
? ? ? ?if (a%temp==0&&b%temp==0) /*只要找到一個(gè)數(shù)能同時(shí)被a,b所整除,則中止循環(huán)*/
? ? ? ? ? break;
? ? ? ?temp--; ? ? ?/*如不滿足if條件則變量自減,直到能被a,b所整除*/
? ? }
? return (temp); /*返回滿足條件的數(shù)到主調(diào)函數(shù)處*/
}
int Gcd(int t[],int n)
{
?? ?int i;
?? ?int c=t[0];
?? ?for(i=1;i<n;i++)
?? ?{
?? ??? ?c=divisor(c,t[i]); ?/*求N個(gè)數(shù)的最大公約數(shù)*/
?? ?}
?? ?return c;
}
int multiple (int a,int b)
{
? int p,q,temp;
? p=(a>b)?a:b; ? /*求兩個(gè)數(shù)中的最大值*/
? q=(a>b)?b:a; ?/*求兩個(gè)數(shù)中的最小值*/
? temp=p; ? ? ?/*最大值賦給p為變量自增作準(zhǔn)備*/
? while(1) ??
? {
? ? if(p%q==0)
? ? ? break; ?/*只要找到變量的和數(shù)能被a或b所整除,則中止循環(huán)*/
? ? p+=temp; ? /*如果條件不滿足則變量自身相加*/
? }
? return ?(p);
}
int Mul(int t[],int n)
{
?? ?int i;
?? ?int s=t[0];
?? ?for(i=0;i<n;i++)
?? ?{
?? ??? ?s=multiple(s,t[i]); ?/*求N個(gè)數(shù)的最小公倍數(shù)*/
?? ?}
?? ?return s;
}
int main()
{
?int t[N];
?int n;
?int flag=1;
?while(flag)
?{
? ? n=input(t);
? ? printf("The higest common divisor is %d\n",Gcd(t,n)); ?/*輸出最大公約數(shù)*/
? ? printf("The lowest common multiple is %d\n",Mul(t,n));/*輸出最小公倍數(shù)*/
? ? printf("retreat:press 0\ncontiune:press 1");
? ? scanf("%d",&flag);
?}
?return 0;
}

測(cè)試截屏

輸入數(shù)據(jù)正確時(shí):

輸入數(shù)據(jù)有0時(shí)會(huì)提示錯(cuò)誤,計(jì)算完成后可以退出和繼續(xù):

總結(jié)

求N個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)的可以聯(lián)系上機(jī)作業(yè):用四種方法求兩個(gè)數(shù)最大公約數(shù)和最小公倍數(shù),像這種思考方式可以用于以后的解決問(wèn)題中。

在完成基本要求中,程序完成比較順利。提高要求仔細(xì)讀了幾遍,明白了題意,尋找滿足x的個(gè)數(shù),這就要用到循環(huán)和計(jì)數(shù)器一個(gè)個(gè)去找,但此要求最終沒(méi)能完成,在對(duì)x的求解過(guò)程仍有問(wèn)題。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Numpy中創(chuàng)建數(shù)組的9種方式小結(jié)

    Numpy中創(chuàng)建數(shù)組的9種方式小結(jié)

    本文主要介紹了Numpy中創(chuàng)建數(shù)組的9種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python中所有子圖標(biāo)簽Legend顯示問(wèn)題記錄

    Python中所有子圖標(biāo)簽Legend顯示問(wèn)題記錄

    在Python中,利用matplotlib創(chuàng)建的子圖可以很容易地添加圖例,無(wú)論是為每個(gè)子圖單獨(dú)添加,還是統(tǒng)一在一起,本文詳細(xì)介紹了如何在多個(gè)子圖中顯示圖例,包括全局圖例的顯示、圖例樣式的調(diào)整和圖例位置的調(diào)整等,需要的朋友可以參考下
    2024-12-12
  • Python對(duì)象的深拷貝和淺拷貝詳解

    Python對(duì)象的深拷貝和淺拷貝詳解

    這篇文章主要介紹了Python對(duì)象的深拷貝和淺拷貝詳解,本文從Python核心編程2書(shū)中摘錄而來(lái),總結(jié)的比較精辟,需要的朋友可以參考下
    2014-08-08
  • 一文教你向Pandas?DataFrame添加行

    一文教你向Pandas?DataFrame添加行

    這篇文章主要給大家介紹了關(guān)于如何向Pandas?DataFrame添加行的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • python 全局變量的import機(jī)制介紹

    python 全局變量的import機(jī)制介紹

    在之前學(xué)習(xí)python設(shè)計(jì)模式(工廠模式實(shí)踐篇),希望使用全局變量代替c++的宏完成服務(wù)自動(dòng)注冊(cè)功能時(shí),遇到過(guò)一個(gè)問(wèn)題,全局變量的定義和使用放在同一個(gè)可執(zhí)行腳本中的問(wèn)題
    2017-09-09
  • Python讀取txt文件數(shù)據(jù)的方法(用于接口自動(dòng)化參數(shù)化數(shù)據(jù))

    Python讀取txt文件數(shù)據(jù)的方法(用于接口自動(dòng)化參數(shù)化數(shù)據(jù))

    這篇文章主要介紹了Python讀取txt文件數(shù)據(jù)的方法(用于接口自動(dòng)化參數(shù)化數(shù)據(jù)),需要的朋友可以參考下
    2018-06-06
  • Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過(guò)程解析

    Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python可視化神器pyecharts繪制水球圖

    Python可視化神器pyecharts繪制水球圖

    這篇文章主要介紹了Python可視化神器pyecharts繪制水球圖,水球圖首先是動(dòng)態(tài)的效果,像水流一樣波動(dòng),所以看起來(lái)比較的舒服,一般用于業(yè)務(wù)里面的完成率,其實(shí)和之前的儀表盤(pán)有點(diǎn)類似
    2022-07-07
  • django實(shí)現(xiàn)web接口 python3模擬Post請(qǐng)求方式

    django實(shí)現(xiàn)web接口 python3模擬Post請(qǐng)求方式

    今天小編就為大家分享一篇django實(shí)現(xiàn)web接口 python3模擬Post請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 簡(jiǎn)單談?wù)刾ython中的Queue與多進(jìn)程

    簡(jiǎn)單談?wù)刾ython中的Queue與多進(jìn)程

    本文給大家簡(jiǎn)單總結(jié)了下再Python中的隊(duì)列對(duì)象(queue)以及多進(jìn)程(multiprocessing),非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-08-08

最新評(píng)論

恭城| 堆龙德庆县| 西乌珠穆沁旗| 蚌埠市| 沂源县| 乌什县| 建平县| 遂平县| 万源市| 海宁市| 高雄县| 南开区| 博白县| 永靖县| 鄯善县| 靖远县| 绿春县| 启东市| 大名县| 天长市| 昌邑市| 梧州市| 溧阳市| 神木县| 海兴县| 航空| 马公市| 麦盖提县| 元江| 双桥区| 沅江市| 南澳县| 上犹县| 远安县| 南充市| 镇安县| 兴国县| 慈溪市| 精河县| 凤城市| 瑞昌市|