码迷,mamicode.com
首页 > 其他好文 > 详细

NOIP2012普及组--质因数分解

时间:2015-07-29 00:32:09      阅读:206      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!