1. 程式人生 > >POJ NOI0105-43 質因數分解

POJ NOI0105-43 質因數分解

總時間限制:
1000ms
記憶體限制:
65536kB
描述
  已知正整數 n 是兩個不同的質數的乘積,試求出較大的那個質數。
輸入
輸入只有一行,包含一個正整數 n。

對於60%的資料,6 ≤ n ≤ 1000。
對於100%的資料,6 ≤ n ≤ 2*10^9。
輸出
輸出只有一行,包含一個正整數 p,即較大的那個質數。
樣例輸入
21

樣例輸出
7

提示
來源
NOIP2012複賽 普及組 第一題

問題分析

如果一個數n是兩個素數的乘積,那麼其中一個素數必然小於或等於n的開平方。

程式說明

  (略)

參考連結:(略)

AC的C++語言程式:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    long n;

    cin >> n;

    if(n % 2 == 0)
        cout << n / 2 << endl;
    else {
        int start = sqrt(n) / 2;
        start = start * 2 + 1;

        for(int i=start; i>=3; i-=2) {
            if(n % i == 0) {
                cout << n / i << endl;
            }
        }
    }

    return 0;
}


相關推薦

POJ NOI0105-43 質因數分解

總時間限制:1000ms記憶體限制: 65536kB描述  已知正整數 n 是兩個不同的質數的乘積,試求出較大的那個質數。輸入輸入只有一行,包含一個正整數 n。 對於60%的資料,6 ≤ n ≤ 1000。 對於100%的資料,6 ≤ n ≤ 2*10^9。輸出輸出只有

POJ 2429 long long 質因數分解

cst factor pro calc can 返回 a + b names 素數 GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissio

POJ-1845-Sumdiv(質因數分解+分治求等比數列和)

首先,對 b=1 的情況進行考慮:A 的約數,可以看成對其質因數分解(假設為m)後,從中取 n 個質因數(每個質因數取的個數不能超過A中有的)相乘。於是這道題我們也是一樣的做法。  的約數就是從A的m個質因數裡,取n個(其中,每個質因數取的個數,不超過 A中有的和B的乘積)

poj-2429 Miller_Rabin強偽素數測試 +pollard_rho質因數分解

題目:GCD & LCM InverseTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 17978Accepted: 3331DescriptionGiven two positive integers

LightOJ 1356 Prime Independence(質因數分解+最大獨立集+Hopcroft-Carp)

target pri 建圖 spa dfs cto rim %d 最大獨立集 http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1356 題意: 給出n個數,問最多能選幾個數,

51nod 1434 區間LCM (質因數分解)

分享 col tin mes == space txt ima cstring 分析:考慮從1到n所有數的質因數分解,記錄每個質數的最高次數,同理從n+1循環到2n,如果循環到m時每個質因子的次數都不低於所記錄的,則跳出循環,結果即為m。先預處理質數,復雜度為O(nlon

[質因數分解]UVa10791 Minimum Sum LCM

uva10791 系列 i++ 一個 scan can 證明 輸出 題目 題目大意 輸入整數n (1<=n<2^31),求至少兩個正整數,使得它們的最小公倍數為n,且這些整數的和最小,輸出最小的和。 (LRJ小紫書P317頁例題) 思考 看LRJ的

51nod 1240 莫比烏斯函數 (質因數分解

mage ans return 空間 clu 使用 lap 技術 com 1240 莫比烏斯函數 基準時間限制:1 秒 空間限制:131072 KB 分值: 0 難度:基礎題 收藏 關註 取消關註 莫比烏斯函數,由德國數學家和天文學家莫比烏斯提出。梅滕斯(Mer

質因數分解(NOIP2012 普及組第一題)

輸入 質數 line syntax tool 輸出格式 兩個 因數 toolbar 描述 已知正整數n是兩個不同的質數的乘積試求出較大的那個質數。 格式 輸入格式 輸入只有一行包含一個正整數n。 輸出格式 輸出只有一行包含一個正整數p, 即較大的那個質數。 樣例1 樣例輸入

質因數分解

cout 因數分解 () 方法 flag nbsp space 下一個 質因數分解 首先,你得先知道任意一個合數可以拆分成若幹個素數之積 例如:24=2*2*2*3 然後就簡單了,我是先取得一定量的素數(用之前寫的素數篩),而後看能否整除,能就繼續,不能就除下一個素數。

數學問題 | 連續質因數分解:1096

opened blog one 質因數分解 == mem ans -i 特殊 這題真的是觸及到了我的知識盲區,寫了一個16分的答案,看了答案(開長整型和找不到結果的特殊判斷)之後改成了18分,還是沒有AC。終於,我仔細一看標準代碼,發現這題不簡單。 wa代碼: #inc

poj2992 divisors 求組合數的約數個數,階乘的質因數分解

TP iostream 約數個數 PE printf for tinc 階乘 BE Your task in this problem is to determine the number of divisors of Cnk. Just for fun -- or do

bzoj2721櫻花——質因數分解

lan esp HP spa alc 通過 In lin void 題目:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 要推式子! 發現x和y一定都比 n! 大。不妨設 x = n!+k;   則1/x + 1/

CODE[VS] 3164 質因數分解

AC def tro esp efault color pri NPU 難度 題目描述 Description (多數據)給出t個數,求出它的質因子個數。 數據沒坑,難度降低。 輸入描述 Input Description 第一行 t

bzoj 4802 歐拉函數 (pollardrho大數質因數分解)

HR pro printf spa std http end CA print bzoj4802 求\(10^{18}\)級別的數的歐拉函數。 pollardrho算法分解大數質因數即可。(主要是存模板) #include <bits/stdc++.h> usi

luogu P2043質因數分解

clu != href 有用 cor tex turn har stream 質因數分解題面 題解做法:沒有用把階乘算出來就得出了答案( ⊙ o ⊙ )啊!神奇呢! #include<iostream> #include<cstdio> usin

橢圓曲線質因數分解2

namespace lar get bre factor break failure long long dds #include <cstring> #include <cstdio> #include <cmath> #include

算法學習筆記1.3.3 質因數分解

因數分解 質因數分解 因數 等於 using 算法學習 ace mat actor 任務 給一個正整數N,將N分解質因數。 說明 N的質因數要麽是N本身(N是素數),要麽一定小於等於sqrt(N)。與i那次可以用小於等於sqrt(N)的數對N進行試除,一直到不能除為止。這時

質因數分解+歐拉篩+線性基

continue 分解 n! () prime amp init linear prim 質因數分解: for(int i=2;i*i<=n;i++){ if(n%i==0) p.push_back(i); while(n%i==0) n/=i; }

HPU暑期第五次積分賽 F - 辭樹的質因數分解

題目 程式碼 #include <iostream> #include <cstring> using namespace std; const int maxn=1e6 + 100; int ans[maxn],a[maxn]; int main() {