求约数的个数 质因子数的个数+1相乘
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 #include<cmath> 7 using namespace std; 8 #define N 10000 9 int f[N+10],a[12],p[N+10],g,o[N+10]; 10 void init() 11 { 12 int i,j; 13 for(i = 2; i <= 100 ; i++) 14 if(!f[i]) 15 { 16 for(j = i+i ; j <= N ; j+=i) 17 f[j] = 1; 18 } 19 for( i =2 ; i <= N ;i++) 20 if(!f[i]) 21 p[++g] = i; 22 } 23 int main() 24 { 25 int i,j; 26 init(); 27 for(i = 1; i <= 10 ; i++) 28 cin>>a[i]; 29 for(i = 1; i <= 10 ; i++) 30 { 31 int x = a[i]; 32 for(j = 1 ; j <= g ; j++) 33 { 34 while(x&&x%p[j]==0) 35 { 36 x/=p[j]; 37 o[p[j]]++; 38 } 39 } 40 } 41 int ans = 1; 42 for(i = 1 ; i <= g ; i++) 43 ans = (ans*(o[p[i]]+1))%10; 44 cout<<ans<<endl; 45 return 0; 46 }