藍橋杯 公倍數NYOJ 517

2022-01-26 02:50:50 字數 2139 閱讀 4543

為什麼1小時有60分鐘,而不是100分鐘呢?這是歷史上的習慣導致。 但也並非純粹的偶然:60是個優秀的數字,它的因子比較多。 事實上,它是1至6的每個數字的倍數。即1,2,3,4,5,6都是可以除盡60。

我們希望尋找到能除盡1至n的的每個數字的最小整數。

不要小看這個數字,它可能十分大,比如n=100, 則該數為: 69720375229712477164533808935312303556800

請編寫程式,實現對使用者輸入的 n (n<100)求出1~n的最小公倍數。

例如: 使用者輸入: 6 程式輸出: 60

使用者輸入: 10 程式輸出: 2520

要求考生把所有函式寫在乙個檔案中。除錯好後,存入與考生資料夾下對應題號的「解答.txt」中即可。 相關的工程檔案不要拷入。 對於程式設計題目,要求選手給出的解答完全符合ansi c標準,不能使用c++特性; 不能使用諸如繪圖、中斷呼叫等硬體相關或作業系統相關的api。

本題滿分:19分

共4個用例:

(2分) 輸入: 3 輸出: 6

(3分) 輸入: 16 輸出: 720720

(5分) 輸入: 25 輸出: 26771144400

(9分) 輸入: 77 輸出: 410555180440430163438262940577600

最小公倍數就是所有質數的相應冪的積

比如n=10

小於10的質數有2,3,5,7

對應的最大冪是:3,2,1,1

則最小公倍數是:2^3x3^2x5^1x7^1 = 2520

1 #include 2 #include 3 #include 4

using

namespace

std;56

int a[50] = ;//

存素數

7bool vis[100];8

int b[50] = ;//

存冪次 910

void init_prim()//

求小於100的所有素數存入陣列a

1123

int t = 0;24

for(k=0; k<100; k++)

25if(!vis[k])

26 a[t++] =k;27}

2829

intmain()

3052

else

if(pow((double)a[i],(double)j) == (double)n)//

必須分開

5357

} 58}

59//

不知道是不是pow函式的問題,把ans定義為int得出的結果出問題,double就對了

60double ans = 1;61

for(k=0; k)

6266 cout<<(int)ans<68return

0; 69}

7071

//該程式 到25時就溢位,ans換位long long前幾個就錯誤啦,此時需要把pow函式換掉

下面是大數版程式(提交通過)

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;67

const

int n = 105;8

intn;

9int a[n][50

];10

int b[n] = ;

1112

void

multiply()

13 32}

33}34}

3536

void printdata(int

n)37

4748

intmain()

4960

//for(i=0; i<100; i++)

61//

cout<62

//while(1);

63multiply();

6465

while(cin>>n)

6673

74printdata(n);75}

76return0;

77}78

nyoj 517 最小公倍數

最小公倍數 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 為什麼1小時有60分鐘,而不是100分鐘呢?這是歷史上的習慣導致。但也並非純粹的偶然 60是個優秀的數字,它的因子比較多。事實上,它是1至6的每個數字的倍數。即1,2,3,4,5,6都是可以除盡60。我們希望尋找到能...

NYOJ 517 最小公倍數 C C

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 為什麼1小時有60分鐘,而不是100分鐘呢?這是歷史上的習慣導致。但也並非純粹的偶然 60是個優秀的數字,它的因子比較多。事實上,它是1至6的每個數字的倍數。即1,2,3,4,5,6都是可以除盡60。我們希望尋找到能除盡1至n的...

藍橋杯 最大最小公倍數

最大的最小公倍數 time limit 1000 ms memory limit 32768 k total submit 265 71 users total accepted 63 51 users rating special judge no description 從小學我們就學過最小公倍...