因数表

打因数表,基本思想是模拟人找因数的过程。

  因数,无非是自己自己的倍数

  通过一个个枚举不同数的倍数得到因数表。

代码如下:

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 #include <string.h>
 5 #define ll long long
 6 
 7 using namespace std;
 8 
 9 const int MX = ;
10 ll sum[MX];
11 
12 void get_table(ll n)
13 {
14     ll x = sqrt(n);
15     for (int i = 1; i <= x; i++)
16     {
17         for (int j = i + 1; j * i <= n; j++)
18         {
19             sum[i * j] += 2;
20         }
21         sum[i * i]++;
22     }
23 }
24 
25 int main()
26 {
27     memset(sum, 0, sizeof(sum));
28     int q;
29     scanf("%d", &q);
30     while(q--)
31     {
32         memset(sum, 0, sizeof(sum));
33         ll x;
34         scanf("%lld", &x);
35         get_table(x);
36         printf("%lld\n", sum[i]);
37     }
38     return 0;
39 }

 

 

 

如有错误,欢迎评论指正!

 

posted @ 2018-08-24 20:51  mpeter  阅读(421)  评论(0编辑  收藏  举报