题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1049
题目描述:
题目大意为给定10个数,然后求这10个数之积所对应的数的所有正因子的个数N的个位数。
那么直接对10个数进行质因数分解即可。(注意%10)
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std ; 5 6 const int MAXM = 10005 ; 7 int val[10], prims[MAXM] ; 8 9 void solve(){ 10 memset(prims, 0, sizeof(prims)) ; 11 12 for( int i = 0; i < 10; i++ ){ 13 for( int j = 2; j <= val[i]; j++ ){ 14 if( val[i] == 1 ) break ; 15 while( val[i] % j == 0 ){ 16 prims[j]++ ; 17 val[i] /= j ; 18 } 19 } 20 } 21 int res = 1 ; 22 for( int i = 0; i < MAXM; i++ ) res *= ((prims[i]+1) % 10) % 10 ; 23 24 cout << res % 10 << endl ; 25 } 26 27 int main(){ 28 ////freopen("1234.txt", "r", stdin) ; 29 for( int i = 0; i < 10; i++ ) cin >> val[i] ; 30 solve() ; 31 return 0 ; 32 }
原文:http://www.cnblogs.com/be-saber/p/5372897.html