zoukankan      html  css  js  c++  java
  • P1075 [NOIP2012 普及组] 质因数分解

    算法一

    根据唯一分解定理,小于 (n) 的最大的能整除 (n) 的整数一定就是答案,可以暴力枚举。

    时间复杂度 (O(n)),实际得分 (60)

    code:

    #include<bits/stdc++.h>
    using namespace std;
    #define Down(i,x,y)for(i=x;i>=(y);i--)
    int main()
    {
    	int n,p;
    	cin>>n;
    	Down(p,n-1,2)
    	if(!(n%p))break;
    	cout<<p;
    	return 0;
    }
    

    算法二

    发现算法一不能通过的原因是较大的那个质数可能的取值范围太大了。

    而较小的那个质数一定小于等于 (sqrt n)。同样地,大于 (1) 的最小的能整除 (n) 的整数一定就是较小的那个质数。

    时间复杂度 (O(sqrt n)),实际得分 (100)

    code:

    #include<bits/stdc++.h>
    using namespace std;
    #define For(i,x,y)for(i=x;i<=(y);i++)
    int main()
    {
    	int n,p;
    	cin>>n;
    	For(p,2,n)
    	if(!(n%p))break;
    	cout<<n/p;
    	return 0;
    }
    
  • 相关阅读:
    JSON和Object数组在js中的转换
    Raphael绘制箭头arrow
    Web后台框架开发
    数据库开发
    docker
    git
    linux
    正则表达式工具
    python模拟ls命令
    python3基础
  • 原文地址:https://www.cnblogs.com/May-2nd/p/14224061.html
Copyright © 2011-2022 走看看