POJ-1316(類素數篩選法)
分析:如果按照定義對每個數進行判斷則需要O(N*N)的時間,但用類似篩素數的思想,我們可以mark出所有不滿足條件的,自然而然的就可以輸出滿足條件的了,時間複雜度是O(Nlog10(N))
#include <cstdio> const int MAX_N = 10000; bool generated[MAX_N + 1] = {0}; int sumDigits(int x) { int sum = 0; for( ; x; x /= 10){ sum += x % 10; } return sum; } int main() { for(int i = 1; i <= MAX_N; ++i){ if(!generated[i]){ printf("%d\n", i); for(int x = i; x <= MAX_N && !generated[x]; x += sumDigits(x)){ generated[x] = true; } } } return 0; }
相關推薦
POJ-1316(類素數篩選法)
分析:如果按照定義對每個數進行判斷則需要O(N*N)的時間,但用類似篩素數的思想,我們可以mark出所有不滿足條件的,自然而然的就可以輸出滿足條件的了,時間複雜度是O(Nlog10(N)) #include <cstdio> const int MAX_N
POJ 3292 Semi-prime H-numbers(類素數篩法)
Description This problem is based on an exercise of David Hilbert, who pedagogically suggested tha
POJ 3292(艾氏篩法)
題意: H-number:4n+1 H-prime:H-number並且只有兩個H-number因子1和他本身 H-semi-number:為兩個H-number數的乘積 H-semi-prime:H-prime&&H-semi-number #inclu
poj 3126 (BFS + 素數打表)
The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room num
演算法提高 素數求和 藍橋杯 (篩選法)
/* 演算法提高 素數求和 問題描述 輸入一個自然數n,求小於等於n的素數之和樣例輸入2樣例輸出2資料規模和約定 測試樣例保證 2 <= n <= 2,000,000*/#include <stdio.h>#include <stdlib
1059 Prime Factors (25 分)厄拉多塞素數篩選法
題目 Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format
打表解素數問題(篩選法)
1、最大素因子 #include<stdio.h> #define max 1000010 int a[max]={0}; void num_prime() { int i,j,x=0; for(i=2;i<max;i++) {
!POJ 2689 Prime Distance-卡時間-(素數篩法)
題意:給定兩個數l,r求這之間最近和最遠的兩個素數。資料範圍是整數的上限。r-l<=10^6 分析:總思路是把l和r間的素數全部找出來,然後遍歷一遍求最小距離和最大距離。用一個函式預處理資料範圍內的所有素數是不現實的,一來陣列不可r能開那麼大二來會超時。想想素數篩的思
POJ:3292-Semi-prime H-numbers(艾氏篩選法拓展)
Semi-prime H-numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10466 Accepted: 4665 Description
poj 2689 Prime Distance(大數區間素數篩法)
題意:給定區間[L,R],求區間內距離最近的相鄰素數對和距離最遠的相鄰素數對,區間長度不超過1e6。 解題方案:用篩法求出[L,R]的所有素數——利用“合數n一定有小於或等於sqrt(n)的素數因子“這條性質,先預處理出sqrt(2,147,483,647)範圍內的所有素
小於等於n的素數的個數(埃式篩選法和尤拉篩選)
問題描述 給定數字n,求出小於等於n的素數的個數,假設n<=1000000 思路 找出數字n之前的所有素數,用陣列isprime[i]表示i是否是素數;用num[i]表示小於等於數字i的素數有多少。 那麼最重要的就是解決判斷一個數是否是素數 方法
素數篩選法 (求1~n的素數)
1、下面是求1~n的素數的一般方法: //求1~n的素數一般方法 #include<iostream> using namespace std; int main() { int n,i,j,k=1; bool bo; cin>>n
POJ 2478 歐拉函數(歐拉篩法) HDU 1576 逆元求法
ios size col add 求和 。。 結果 names const 相關逆元求法,我之前有寫過,還有歐拉函數的求法,歐拉函數與逆元的關系 點擊POJ 2478又是一個打表的題目,一眼看出結果就是前n個歐拉函數值的和。這裏直接計算歐拉函數值求和會超時,看見多組數據。
18.12.10 POJ 3450 Corporate Identity(字尾陣列+二分法)
描述 Beside other services, ACM helps companies to clearly state their “corporate identity”, which includes company logo but also other signs, like trademar
poj 3111 K Best (牛頓迭代法)
牛頓迭代法參考連結:我愛維基 首先,選擇一個接近函式零點的,計算相應的和切線斜率(這裡表示函式的導數)。然後我們計算穿過點並且斜率為的直線和軸的交點的座標,也就是求如下方程的解: 我們將新求得的點的座標命名為,通常會比更接近方程的解。因此我們現在可以利用開始下一輪迭代。迭代公式可化
3292 Semi-prime H-numbers(素數篩法)
先求所有的H-pirme,所有的H-prime兩兩相乘打表。 注: 1、H-numbers是所有除以4餘1的數,而H-prime則是隻能在這些H-numbers中分解因式只得到1*本身的數(1除外)。所以9也是H-prime(原來理解錯了)。 2、 H-semi-prim
(轉載)O(N)的素數篩選法和歐拉函數
算法與數據結構 變形 技術 範圍 n) border {} 數據 eps 轉自:http://blog.csdn.net/dream_you_to_life/article/details/43883367 作者:Sky丶Memory 1.一個數是否為質數的判定.
素數篩選法
return img rim -a clas font clu als bool 素數篩選法 素數(又稱質數):指在大於一的自然數中,只能被1和它自身整除的自然數; 素數篩選法是指一種非常規的素數判定方法,比較高效率; 原理:任何數的整數倍必定不是素數,大於二的
POJ 3970(最小公倍數LCM)
con html sso assume rate tput p s soc employ ?? 知識點: 最小公倍數(a,b)=a*b/最大公約數(a。b)
java 靜態變量生命周期(類生命周期)
targe ref 鍵值對 靜態代碼塊 經歷 per tails jvm的內存 代碼 轉載自:http://www.cnblogs.com/hf-cherish/p/4970267.html 侵刪 Static: 加載:java虛擬機在加載類的過程中為靜態變量分配