码迷,mamicode.com
首页 > 其他好文 > 详细

HackerRank# Red John is Back

时间:2015-05-06 01:14:20      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

原题地址

 

简单动归+素数判定,没用筛法也能过

 

代码:

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <vector>
 4 #include <iostream>
 5 #include <algorithm>
 6 #include <cstring>
 7 using namespace std;
 8 
 9 
10 #define MAX_N 64
11 #define MAX_M 1000000
12 
13 int T, N;
14 int cnt[MAX_N];
15 int p[MAX_M];
16 
17 int is_prime(int n) {
18     for (int i = 2; i * i <= n; i++)
19         if (n % i == 0)
20             return 0;
21     return 1;
22 }
23 
24 int main() {
25     /* Enter your code here. Read input from STDIN. Print output to STDOUT */
26     p[1] = 0;
27     for (int i = 2; i < MAX_M; i++)
28         p[i] = p[i - 1] + is_prime(i);
29     cin >> T;
30     while (T--) {
31         cin >> N;
32         memset(cnt, 0, sizeof(cnt));
33         cnt[0] = 1;
34         for (int i = 1; i <= N; i++)
35             cnt[i] = cnt[i - 1] + (i - 4 >= 0 ? cnt[i - 4] : 0);
36         cout << p[cnt[N]] << endl;
37     }
38     return 0;
39 }

 

HackerRank# Red John is Back

标签:

原文地址:http://www.cnblogs.com/boring09/p/4480680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!