Nearly prime numbers - SGU 113(素数)
2015-09-17 09:26
489 查看
题目大意:判断一个数是否是两个素数的乘积,如果是,输出Yes,否则No。
分析:先打表求出来一部分素因子,用素数对素数判定还是比较快的。
代码如下:
===============================================================================================================================
分析:先打表求出来一部分素因子,用素数对素数判定还是比较快的。
代码如下:
===============================================================================================================================
#include<stdio.h> #include<algorithm> #include<vector> #include<iostream> #include<math.h> #include<string.h> using namespace std; const int MAXN = 10005; int p[MAXN]={2}; bool Prime(int n) { if(n == 1 || n==0) return false; for(int i=0; p[i]*p[i] <= n; i++) { if(n % p[i] == 0) return false; } return true; } int main() { for(int i=3, j=1; i<32000; i++) { if(Prime(i)) p[j++] = i; } int T; scanf("%d", &T); while(T--) { int i, N; scanf("%d", &N); for(i=0; p[i]*p[i] <= N; i++) { if(N%p[i]==0 && Prime(N/p[i])) break; } if(p[i]*p[i] <= N) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- 大众点评—笔试
- (四)工厂方法模式
- lib文件配置的3种方法
- 软件测试
- Git 常用命令速查表(三)
- Xcode6.4 插件管理工具Alcatraz安装和常用插件
- 存储系统科普——硬件层介绍
- winForm
- NetBeans表格
- 微信官方:我们是如何打败QQ的?
- Group Anagrams
- Android自定义控件——时钟、进度条
- 电话本3.0 I/O流实现
- Linux 运维工程师的十个基本技能点
- Struts2通配符映射
- Z表数据EXCEL导入
- [刷题]Single Number II
- 树莓派开发(SD卡删除分区)
- 基于Spring框架的Shiro配置
- virtualbox中ubuntu和windows共享文件夹设置