NYOJ 767 因子和
2016-05-09 16:37
267 查看
因子和
时间限制:1000 ms | 内存限制:65535 KB难度:1
描述
题目很简单明了,给你一个数n,判断它是不是素数,如果是素数就输出”Yes”,如果不是素数则输出“No”和它的因子和。例如5,输出“Yes”,6,输出“No 12”.(不包括引号)
输入 共有t组测试数据(1<=t<=100000)。
接下来有t行,每行有一个数n(1<n<=2000000).
输出 如果是素数,输出“Yes”,不是的话就输出“No”和它的因子和,中间用空格分开。 样例输入
5
91
92
4
23
75
样例输出
No 112
No 168
No 7
Yes
No 124
~筛法求素数打表+因子和
#include <iostream> #include <cstdlib> #include <stdio.h> #include <algorithm> #include <math.h> #include <string.h> #include <queue> #include <stack> using namespace std; int a[2000010]; void shai_fa(int n){ memset(a,-1,sizeof(a)); for(int i=2;i*i<=n;i++){ if(a[i]==-1){ for(int j=i*2;j<=n;j+=i){ a[j]=0; } } } } int main() { int t,n,sum; shai_fa(2000010); while(~scanf("%d",&t)){ while(t--){ scanf("%d",&n); if(n==1)printf("No 1\n"); else{ sum=0; if(a ==-1){ printf("Yes\n"); } else{ int i; sum=1; for(i=2; i*i<=n; i++){ if(n%i==0) sum+=(i+n/i); if(n==i*i) sum-=i; } sum+=n; printf("No %d\n",sum); } } } } return 0; }
相关文章推荐
- iWMS PHP + AJAX 在线仓储管理系统
- 【C语言】矩阵转置
- SVM多类识别
- 阶段冲刺5
- StringUtils.isNotBlank("stringstr")
- iOS性能优化:Instruments使用实战(转)
- Oracle 如何修改列的数据类型
- 全文索引----solr服务器更新增量索引
- C#时间格式化
- ArcGIS教程:更改标题的文本和样式
- (4.1.40.1)Android得到控件在屏幕中的坐标
- 关于Android 内存泄露整理
- 程序不过是想法与api,编程不过是重复的工作
- Python pip distribute
- iBatis开发环境搭建和示例
- android 自定义控件---圆形方向盘
- makefile 中的符号替换($@、$^、$<、$?)
- redis和memcached在应用中的架构:水平拆分和垂直拆分
- 《我所理解的Cocos2d-x》PDF
- 使用exe4j制作java启动程序等候界面