首页 > 其他 > 详细

NOIP2012普及组--质因数分解

时间:2015-07-29 00:31:19      阅读:329      评论:0      收藏:0      [点我收藏+]

技术分享

 

 

分析:一遍遍循环,效率比较低,但可以通过减半和除偶来减少次数,但是依旧不是很理想,数论中有个定论是任意合数都可以由

几个质数乘的,但是目前还没想好怎么运用这个定论,所以将就一下。

PS:这个数肯定是合数,因为1不是质数,所以不可能是1和本身。

 

 

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int n,i;
 5     int j,x=0;
 6     scanf("%d",&n);
 7     for(i=(n/2);i>2;i--)        //因为质因数肯定少与原数的一半,所以从一半开始 
 8     {
 9         if(n%i==0&&i%2!=0)        //排除偶数 
10         {
11                 for(j=3;j<i;j=j+2)
12                 {
13                     if(i%j==0)        //若有其他因数,则不是质数 
14                     {
15                         x=1;
16                         break;
17                     }
18                 
19                 }
20             
21             if(x==0)
22             break;
23             else
24             x=0;
25         }
26     }
27     printf("%d",i);
28     return 0;
29 }

 

NOIP2012普及组--质因数分解

原文:http://www.cnblogs.com/charlotteandxing/p/4684689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!