JP2018195274A - Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 - Google Patents

Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 Download PDF

Info

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
Application number
JP2017107146A
Other languages
English (en)
Inventor
正仁 櫨田
Masahito Utsugida
正仁 櫨田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2017107146A priority Critical patent/JP2018195274A/ja
Publication of JP2018195274A publication Critical patent/JP2018195274A/ja
Pending legal-status Critical Current

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が素数と判断出来る。
このアルゴリズムで、自然数の素因数分解の速さは数倍に速くなり、因数分解した「二つの数」を、今までのアルゴリズムよりも高速に特定する事が出来る。
この発明により、自然数の素因数分解は数倍に速くなり、「数の原子」と呼ばれる素数の特定が、何千京桁もの自然数の素因数分解に依り、特定・発見する事が出来て、整数論やゴールドバッハ予想の検証、リーマン予想と素数分布論に関係する事、NP問題などの検証等に応用できる。

Claims (1)

  1. CPUのアーキテクチャを上手く使った、自然数を素因数分解する方法
JP2017107146A 2017-05-15 2017-05-15 Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法 Pending JP2018195274A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200101782A (ko) 2019-02-20 2020-08-28 고려대학교 산학협력단 스레드 정보를 이용한 소수 복구 방법, 이를 수행하기 위한 장치 및 기록매체

Citations (5)

* Cited by examiner, † Cited by third party
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 富士通株式会社 コンパイル装置、コンパイル方法およびコンパイルプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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