/*
* 對於整數n,n的階乘表示為n!定義如下 0! = 1 n! = n * (n - 1)! 給定n和m,
* 問n!是否是m的倍數? n和m全在32位整數範圍內,m非0。 返回1和0表示整除和不整除。
*/#include #include int func(int n, int m)
; int num[33] = ;
int flag = 0;
int sum = 0;
int temp = 0;
// 特殊情況:當n大於m和當n等於0時
if(n > m || (n == 0 && m == 1))
if(n == 0 && m != 1)
// 從2開始,算出m能拆解成多少個2*2*...*3*3...*5*5...記錄在陣列中,m拆解出的長度不會超過32
for(i = 2; i <= temp_m/2+1; i++)
num[flag]++;}}
for(j = 1; j < 33; j++)
else
}// 1--n這些數里,有temp個是array[j]的倍數,也就是包含了temp個array[j]
// temp=temp/array[j]相當於計算1--n這些數中有temp個是array[j]^2的倍數...
temp = temp_n / array[j];
while(temp != 0)
if(sum < num[j])
sum = 0;
}return 1;
}int main()
數論分塊與整除相
引理一 forall a,b,c in mathbb,left lfloor frac right rfloor left lfloor frac right rfloor right rfloor 略證 begin frac left lfloor frac right rfloor r 0 le...
L先生與階乘
沒錯,可憐的l先生又遇到了一道數學難題!n的階乘的末尾有多少個0?多測試例,處理到檔案結束。總測試例數量 15000 每行有乙個測試例,為乙個非負整數n 0 n 15000 每個測試例對應的輸出佔一行 1 230 00 思路 如果我們要判斷出0的個數,如果我們直接求n 那麼資料會很大,資料可能溢位,...
VB判斷整除並整除
private sub command1 click dim m as integer,n as integer,d as integer dim s as long 儲存結果 m val text1.text n val text2.text d val text3.text s 0 sum m,...