首页 > 代码库 > 质因数分解 2012年NOIP全国联赛普及组
质因数分解 2012年NOIP全国联赛普及组
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze
题目描述 Description
已知正整数 n是两个不同的质数的乘积,试求出较大的那个质数 。
输入描述 Input Description
输入只有一行,包含一个正整数 n。
输出描述 Output Description
输出只有一行,包含一个正整数p,即较大的那个质数。
样例输入 Sample Input
21
样例输出 Sample Output
7
数据范围及提示 Data Size & Hint
【数据范围】
对于60%的数据,6≤n≤1000。
对于100%的数据,6≤n≤2*109。
代碼實現:
1 #include<cstdio> 2 int n,a,s[6000]; 3 bool v[600000]; 4 bool ps(int x){ 5 if(x<=50000&&v[x]==1) return 0; 6 for(int i=2;i*i<=x;i++) 7 if(x%i==0) return 0; 8 return 1; 9 } 10 int main(){ 11 for(int i=2;i<=50000;i++){ 12 if(!v[i]){ 13 a=i;s[++s[0]]=a; 14 while(a<=50000){a+=i;v[a]=1;} 15 } 16 } 17 scanf("%d",&n); 18 for(int i=1;i<=s[0];i++){ 19 if(n%s[i]==0&&ps(n/s[i])){ 20 printf("%d\n",n/s[i]); 21 return 0; 22 } 23 } 24 }
。。。
质因数分解 2012年NOIP全国联赛普及组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。