時限:1000ms 記憶體限制:10000k 總時限:3000ms
描述:
因為151既是乙個質數又是乙個回文數(從左到右和從右到左看是一樣的),所以151是回文質數.
寫乙個程式來找出範圍[a,b](5<=a輸入:
第一行 兩個整數:a和b.
輸出:
輸出乙個回文質數的列表,一行乙個.
輸入樣例:
5 500
輸出樣例: 5
711101131
151181
191313
353373
383本題我做了較長的時間,判斷回文質數很簡單即isprime();issys();兩個if語句巢狀即可實現,但是提交後發現時間複雜較高,故思考因為判斷素數的複雜度較高,應該先判斷回文再判斷素數,並且對於回文的判斷使用陣列儲存各位數字然後在進行對比也較為冗餘,想到回文數正反值相同,所以更改**如下:
#include#includeusing namespace std;
bool isprime(int val)
}if(q > sqrt(val))
}bool issys(int val)
}if(reverseval == val)else
}int main()}}
}
但是提交發現還是不能滿足時間複雜度要求,重新審題發現[a,b](5<=a通過在網路檢索回文素數的性質,得知4位、6位、8位的回文數都不是素數。由此可以剔除一部分資料,在兩位數之內只有三個回文素數,所以三位數以內的素數通過打表來進行計算,其他的按照數字,先生成回文數再進行素數的判斷;**如下:
#include#includeusing namespace std;
bool isprime(int val)
}if(q > sqrt(val))
}int getlength(int border)
return m;
}int main()
if(a <= 7 && b >= 7)
}if(p <= 2 && q >=2)
}if(p <= 3 && q >= 3)}}
}}}}
}
回文質數 搜尋
usaco 1.5 因為151既是乙個質數又是乙個回文數 從左到右和從右到左是看一樣的 所以 151 是回文質數。寫乙個程式來找出範圍 a,b 5 a b 100,000,000 一億 間的所有回文質數 program name pprime input format file pprime.in ...
回文質數 (Prime Palindromes)
題目描述 因為 151 既是乙個質數又是乙個回文數 從左到右和從右到左是看一樣的 所以 151 是回文質數。寫乙個程式來找出範圍 a,b 5 a輸入格式 第 1 行 二個整數 a 和 b 輸出格式 輸出乙個回文質數的列表,一行乙個。輸入輸出樣例 輸入5 500輸出5 711101131 151181...
python 處理回文質數
因為151既是乙個質數又是乙個回文數 從左到右和從右到左是看一樣的 所以 151 是回文質數。寫乙個程式來找出範圍 a,b 5 a b 100,000,000 一億 間的所有回文質數 輸入輸出格式 輸入格式 第 1 行 二個整數 a 和 b 輸出格式 輸出乙個回文質數的列表,一行乙個。輸入輸出樣例 ...