美素数备忘
来源:互联网 发布:联合国商品数据库 编辑:程序博客网 时间:2024/06/06 03:46
#include<stdio.h>#include<math.h>#define maxn 1000000+1int prime[maxn];int count[maxn];bool is_beauty_prime(int n);int tot = 0;void getPrime(){ int i, j; int tmp = int((double)sqrt(maxn) + 1); for(i = 2; i < maxn; i++) { prime[i] = 1; } for(i = 2; i < maxn; i++) { if(prime[i]) { if(i < tmp) { for(j = i*i; j < maxn; j+=i) prime[j] = 0; } } } for(i = 2; i < maxn; i++) { if(prime[i] && is_beauty_prime(i)) { count[++tot] = i; } }}bool is_beauty_prime(int n){ int tmp = 0; while(n) { tmp += n%10; n /= 10; } if(prime[tmp]) return true; return false;}int binary_search(int l, int h, int num){ while(l <= h) { int mid = (l+h)/2; if(num == count[mid]) return mid; else if(count[mid] > num) { h = mid-1; } else { l = mid+1; } } return l;}int beauty_prime(int a, int b){ int i; int sum = 0; for(i = a; i <= b; i++) { if(prime[i]) { if(is_beauty_prime(i)) sum++; } } return sum;}int main(){ int n, a, b, i, j; getPrime(); scanf("%d", &n); for(i = 1; i <= n; i++) { int top = 0; int down = 0; scanf("%d %d", &a, &b); down = binary_search(1, tot, a); top = binary_search(1, tot, b); if(count[top] == b)top++; down--; int num = top-down-1; printf("Case #%d: %d\n", i, num); }}
0 0
- 美素数备忘
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 美素数
- 金山居 美素数
- hdu 4548 美素数
- hdu 4548 美素数
- HDU4548:美素数
- hdu4548(美素数)
- HDOJ 4548 美素数
- 7 Steps for Learning Data Mining and Data Science
- 线性表节点
- iOS开发UI高级—10使用picker View控件完成一个简单的选餐应用
- 【SDUT 3253】 Game!
- iOS CoreData详解(七)性能相关
- 美素数备忘
- redis (二)
- 二分查找的小改进
- 黑马程序员_面向对象(多态)
- iOS开发UI高级—11ios应用数据存储方式(XML属性列表-plist)
- Java Struts2 中文乱码问题
- IoC容器Autofac(4) - Autofact + Asp.net MVC + EF Code First(附源码)
- 后端设计中特殊单元
- C++11:override 与 final