JP2018195274A - Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 - Google Patents
Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 Download PDFInfo
- Publication number
- JP2018195274A JP2018195274A JP2017107146A JP2017107146A JP2018195274A JP 2018195274 A JP2018195274 A JP 2018195274A JP 2017107146 A JP2017107146 A JP 2017107146A JP 2017107146 A JP2017107146 A JP 2017107146A JP 2018195274 A JP2018195274 A JP 2018195274A
- Authority
- JP
- Japan
- Prior art keywords
- numbers
- natural number
- numerical
- digits
- prime
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
【課題】演算速度の速い掛け算と比較を使う事に依って、素因数分解を高速に行う。【解決手段】自然数nに対して、√nに相当する桁数の二つの数を用意して、この二つの数を掛け合わせ、この掛け合わせた数の末尾2〜4桁と自然数nの末尾2〜4桁とを比較する事に依り、この二つの数が自然数nに対して、因数分解した数となっているかどうかを判定して行く。初めは、二つの数の片方を固定して置き、もう一方を1からインクリメントして行く。掛け合わせた数の末尾2〜4桁が自然数nの末尾2〜4桁と一致しなかった場合は、固定した方の数を1、デクリメントして、もう一方の数は、初めの1から再度、インクリメントして行く。掛け合わせた数の末尾2〜4桁が自然数nの末尾2〜4桁と一致した場合は、二つの数が自然数nに対して因数分解した合成数(素数では無い)であり、自然数自体が素数の場合は、片方の数が1となり、自然数nが素数と判断出来る。【選択図】なし
Description
この発明は、コンピューターのソフトウェア分野に関する物である。
この発明は、CPUの演算速度の速いコマンドを使う、CPUのアーキテクチャを上手く使った方法に依る、今までとは全く逆のアルゴリズムに依る、自然数を素因数分解する方法である。
今までの自然数の素因数分解は、自然数の平方根以下の素数で自然数を除算して行く事で、二つの自然数(素数)に因数分解していて、この方法では、素数列のデータをメモリー上に用意したり、CPU自体が除算するのに他のコマンドよりも時間が掛かったりしている。その為に、自然数nを50桁の数とすると、√nまでの素数は1023個以上も在り、このアルゴリズムでは、50桁の自然数nを素因数分解するにはスーパー・コンピューター、CRAY・1の100倍程の計算速度のコンピューターでも300万年以上も掛かっている。
スーパー・コンピューターでも時間の掛かる自然数の素因数分解を、CPUのアーキテクチャを考慮した、演算速度の速いコマンドを使う事に依って素因数分解を今までの数倍の速さにして、二つの合成数(素数)を特定する方法。
CPUは、そのアーキテクチャ上、演算をするALUはAND、OR、NOT、Ex−ORや加算、減算、比較などを中心としたコマンド群であり、ALUの中には掛け算や割り算をする回路は入って無かった。その為に、このCPUのアーキテクチャを上手く使った、演算速度の速い掛け算と比較(コンペア)のコマンドを使う事に依って、今までとは全く逆のアルゴリズムに依る、自然数の素因数分解の方法を発見した。その方法を以下に記述する。
自然数nに対して、√nに相当する桁数の「二つの数」を用意して、この「二つの数」を掛け合わせて、この「掛け合わせた数」の末尾2〜4桁と自然数nの末尾2〜4桁とを比較する事に依って、この「二つの数」が自然数nに対して、因数分解した「数」となっているかどうかを判定して行く。初めは、「二つの数」の片方を99999999等と固定して置き、もう一方を1からインクリメントして行く。「掛け合わせた数」の末尾2〜4桁が自然数nの末尾2〜4桁と一致しなかった場合は、固定した方の「数」を1、デクリメントして、もう一方の「数」は、初めの1から再度、インクリメントして行く。「掛け合わせた数」の末尾2〜4桁が自然数nの末尾2〜4桁と一致した場合は、「二つの数」が自然数nに対して因数分解した合成数(素数では無い)であり、自然数自体が素数の場合は、片方の数が1となり、簡単に自然数nが素数と判断出来る。
このアルゴリズムで、自然数の素因数分解の速さは数倍に速くなり、因数分解した「二つの数」を、今までのアルゴリズムよりも高速に特定する事が出来る。
自然数nに対して、√nに相当する桁数の「二つの数」を用意して、この「二つの数」を掛け合わせて、この「掛け合わせた数」の末尾2〜4桁と自然数nの末尾2〜4桁とを比較する事に依って、この「二つの数」が自然数nに対して、因数分解した「数」となっているかどうかを判定して行く。初めは、「二つの数」の片方を99999999等と固定して置き、もう一方を1からインクリメントして行く。「掛け合わせた数」の末尾2〜4桁が自然数nの末尾2〜4桁と一致しなかった場合は、固定した方の「数」を1、デクリメントして、もう一方の「数」は、初めの1から再度、インクリメントして行く。「掛け合わせた数」の末尾2〜4桁が自然数nの末尾2〜4桁と一致した場合は、「二つの数」が自然数nに対して因数分解した合成数(素数では無い)であり、自然数自体が素数の場合は、片方の数が1となり、簡単に自然数nが素数と判断出来る。
このアルゴリズムで、自然数の素因数分解の速さは数倍に速くなり、因数分解した「二つの数」を、今までのアルゴリズムよりも高速に特定する事が出来る。
この発明により、自然数の素因数分解は数倍に速くなり、「数の原子」と呼ばれる素数の特定が、何千京桁もの自然数の素因数分解に依り、特定・発見する事が出来て、整数論やゴールドバッハ予想の検証、リーマン予想と素数分布論に関係する事、NP問題などの検証等に応用できる。
Claims (1)
- CPUのアーキテクチャを上手く使った、自然数を素因数分解する方法
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017107146A JP2018195274A (ja) | 2017-05-15 | 2017-05-15 | Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017107146A JP2018195274A (ja) | 2017-05-15 | 2017-05-15 | Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018195274A true JP2018195274A (ja) | 2018-12-06 |
Family
ID=64570549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017107146A Pending JP2018195274A (ja) | 2017-05-15 | 2017-05-15 | Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018195274A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200101782A (ko) | 2019-02-20 | 2020-08-28 | 고려대학교 산학협력단 | 스레드 정보를 이용한 소수 복구 방법, 이를 수행하기 위한 장치 및 기록매체 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006072336A (ja) * | 2004-08-03 | 2006-03-16 | Dainippon Printing Co Ltd | 素因数分解装置、素因数分解プログラム、安全性評価装置、安全性評価プログラム及び素因数分解方法 |
JP2007080633A (ja) * | 2005-09-13 | 2007-03-29 | Toyota Industries Corp | エレクトロルミネッセンス装置の製造方法と検査方法とエレクトロルミネッセンス装置 |
JP2008140148A (ja) * | 2006-12-01 | 2008-06-19 | Casio Comput Co Ltd | 数式表示制御装置及び数式表示制御プログラム |
JP2010118968A (ja) * | 2008-11-13 | 2010-05-27 | Hiroshima Ichi | 秘密情報分散装置及び秘密情報復元装置 |
JP2017033342A (ja) * | 2015-08-03 | 2017-02-09 | 富士通株式会社 | コンパイル装置、コンパイル方法およびコンパイルプログラム |
-
2017
- 2017-05-15 JP JP2017107146A patent/JP2018195274A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006072336A (ja) * | 2004-08-03 | 2006-03-16 | Dainippon Printing Co Ltd | 素因数分解装置、素因数分解プログラム、安全性評価装置、安全性評価プログラム及び素因数分解方法 |
JP2007080633A (ja) * | 2005-09-13 | 2007-03-29 | Toyota Industries Corp | エレクトロルミネッセンス装置の製造方法と検査方法とエレクトロルミネッセンス装置 |
JP2008140148A (ja) * | 2006-12-01 | 2008-06-19 | Casio Comput Co Ltd | 数式表示制御装置及び数式表示制御プログラム |
JP2010118968A (ja) * | 2008-11-13 | 2010-05-27 | Hiroshima Ichi | 秘密情報分散装置及び秘密情報復元装置 |
JP2017033342A (ja) * | 2015-08-03 | 2017-02-09 | 富士通株式会社 | コンパイル装置、コンパイル方法およびコンパイルプログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200101782A (ko) | 2019-02-20 | 2020-08-28 | 고려대학교 산학협력단 | 스레드 정보를 이용한 소수 복구 방법, 이를 수행하기 위한 장치 및 기록매체 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020537221A5 (ja) | ||
Kim et al. | Isogeometric contact analysis using mortar method | |
JP2016532943A5 (ja) | ||
US11372929B2 (en) | Sorting an array consisting of a large number of elements | |
JP2016511470A5 (ja) | ||
JP5872085B1 (ja) | 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム | |
Apostal et al. | Password recovery using MPI and CUDA | |
Tian et al. | Penalized quadratic inference functions for semiparametric varying coefficient partially linear models with longitudinal data | |
JP2007155715A (ja) | 計測処理中にメタデータの検証を実施する為のシステム及び方法 | |
Jackiewicz et al. | Construction of IMEX DIMSIMs of high order and stage order | |
WO2021252294A1 (en) | Protection of transformations by intermediate randomization in cryptographic operations | |
CN107291898B (zh) | 基于FPGA的MySQL认证密码恢复系统及其方法 | |
CN105677645B (zh) | 一种数据表比对方法和装置 | |
JP2013218636A (ja) | クラスタリング処理装置、クラスタリング処理方法、及びプログラム | |
JP2018195274A (ja) | Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 | |
JP2020510935A5 (ja) | ||
JP7377869B2 (ja) | グラフィックスプロセッシングユニットでのパイプライン化された行列乗算 | |
JP6367959B2 (ja) | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム | |
US11573765B2 (en) | Fused convolution and batch normalization for neural networks | |
US20160330016A1 (en) | Element replication device, element replication method, and program | |
US20140114900A1 (en) | Computer-readable recording medium, extracting device, and extracting method | |
Wu et al. | Finding tree symmetries using continuous-time quantum walk | |
Schweitzer | A two-sided short-recurrence extended Krylov subspace method for nonsymmetric matrices and its relation to rational moment matching | |
JP2019050480A5 (ja) | ||
Kushida et al. | Iterative approximation of preconditioning matrices through krylov-type solver iterations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181002 |