NYOJ520 最大素因子
2014-02-27 17:09
211 查看
原题链接
很巧妙的一道题。我是没能想到这么巧的方法,唉,差距真不是那么一点点啊...
附原题标程:
我模仿着写的一个
#include <cstdio>
#define MAX 1000000 + 2
int a[MAX];
void Count(){
for(int i = 2, count = 0; i < MAX; ++i){
if(!a[i]){
++count;
for(int j = i; j < MAX; j += i)
a[j] = count; //该素数的倍数的最大素因子可能是这个值,如果不是,以后可更新
}
}
}
int main(){
int n;
Count();
while(scanf("%d", &n) == 1)
printf("%d\n", a
);
return 0;
}
很巧妙的一道题。我是没能想到这么巧的方法,唉,差距真不是那么一点点啊...
附原题标程:
#include<stdio.h> #define N 1000010 int ans ={0},a; void prime() { int i,j,x=0; for( i=2; i<N; i++) if( ans[i] == 0 ) { x++; for(j=i; j<N; j+=i) //素数的整倍数的最大素因子可能是该素数 ans[j] = x; //更新素数对应的出现的次序 } } main() { prime(); while( scanf ( "%d" , &a ) != EOF ) printf ( "%d\n", ans[a] ); }
我模仿着写的一个
#include <cstdio>
#define MAX 1000000 + 2
int a[MAX];
void Count(){
for(int i = 2, count = 0; i < MAX; ++i){
if(!a[i]){
++count;
for(int j = i; j < MAX; j += i)
a[j] = count; //该素数的倍数的最大素因子可能是这个值,如果不是,以后可更新
}
}
}
int main(){
int n;
Count();
while(scanf("%d", &n) == 1)
printf("%d\n", a
);
return 0;
}
相关文章推荐
- Core Data浅谈系列之一 : 基础结构
- makefile的语法及写法(二)
- 银行业务调度系统-java并发程序模拟解决方案
- 使用git 新建分支以及管理分支
- Structs 2
- web应用防火墙 – 安全伞18.5.1免费版本发布
- NYOJ520 最大素因子
- Web 开发人员不能错过的 jQuery 教程和案例
- ios提交市场报错误ERROR ITMS-9000: "this bundle is invalid. armv7s are required to include armv7 architectur
- 397A-On Segment's Own Points
- 读取本地图片并且设置默认文件名
- 如何解决IE版本兼容问题
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!
- makefile的语法及写法(一)
- 各大IT/IC公司offer比较
- ORA-01843:无效的月份
- 如何用计划任务执行powershell脚本
- 接口interface
- (12)ExtJS之Ext.form.field.Radio、Ext.form.field.Checkbox
- <转>C++基础知识: 引用