素?cái)?shù)整除性問題

前幾天遇到這么一道題,挺有趣的,分享給大家:

題目:

截圖

題目的意思是:對于3的整除性,任何一個(gè)整數(shù),如果各個(gè)位數(shù)相加能被3整除,那么這個(gè)數(shù)就能被3整除;對于11的整除性,任何一個(gè)整數(shù),從右數(shù)每隔兩位作為一個(gè)兩位數(shù)進(jìn)行分割,如果各個(gè)兩位數(shù)相加能被11整除,那么這個(gè)數(shù)就能被11整除;是否所有的非2,5的素?cái)?shù)p,都存在這樣偏移位數(shù)r,使得分割后的數(shù)字之和能被p整除。

例如:
112321對11的整除性,
11+23+21 = 55
能被 55能被11整除,那么112321就能被11整除

很容易推導(dǎo)出下面公式:

任意整數(shù)X,可以表示為:
X = a0 + 10r * a1 + 102r * a2 + 103r * a3······
= a0 + a1 + a2 + a3·····+(10r-1) * a1+(10r-1) *(10r+1) * a2 +(10r-1) *(102r+10r+1) * a2······
其中an為r位整數(shù)。若(10r-1) 和( a0 + a1 + a2 ···)能被p整除,那X就能被p整除。

引入(純循環(huán)小數(shù))規(guī)律一:

假設(shè) 1/p為純循環(huán)小數(shù)
1/p = k*(1/10n+1/102n+1/103n·····)
其中n為循環(huán)節(jié)長度;k是循環(huán)節(jié),為n位整數(shù)。
=> (10n - 1) 1/p = k
=> (10n - 1) = pk

引入(非2 5 素?cái)?shù)的倒數(shù)為純循環(huán)小數(shù))規(guī)律二:

假設(shè)1/p為混循環(huán)小數(shù)
1/p = k(1/10m+n+1/10m+2n+1/10m+3n·····)+t/10m
其中k為n位整數(shù),t為m位整數(shù),k不等于t
化簡得p=10m(10n-1)/[k+(10n-1)t]
可知k只能被(10n-1)整除,設(shè)k=a*(10n-1),帶入
p = 10m/(a+t)
=>p為素?cái)?shù)只能取2或5
=> 1/p為純循環(huán)小數(shù),滿足規(guī)律一。

可以得出結(jié)論

非2 5素?cái)?shù)的倒數(shù),一定存在整數(shù)r 、k,r為循環(huán)節(jié)長度,滿足:
1/p = k/(10r-1)
=>p*k = 10r-1
其中k為純循環(huán)小數(shù)循環(huán)節(jié),長度為r

所以題目轉(zhuǎn)化為求質(zhì)數(shù)p的倒數(shù)的循環(huán)節(jié)長度:

import java.io.InputStreamReader;

/**
 * @author: hyp
 * Date: 2017-12-08
 */
public class Test {
    static class Expression {
        private int numerator;
        private int denominator;
        private int quotient;
        private int remainder;

        public Expression(int numerator, int denominator) {
            this.numerator = numerator;
            this.denominator = denominator;
            calculate();
        }

        private void calculate() {
            this.quotient = numerator / denominator;
            this.remainder = numerator % denominator;
        }

        public Expression next() {
            return new Expression(this.remainder * 10, denominator);
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (!(o instanceof Expression)) return false;

            Expression that = (Expression) o;

            if (quotient != that.quotient) return false;
            return remainder == that.remainder;
        }

        @Override
        public int hashCode() {
            int result = quotient;
            result = 31 * result + remainder;
            return result;
        }
    }

    public static void main(String[] args) throws java.lang.Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        int value = Integer.parseInt(input);
        Expression cirlcePoint = new Expression(10, value);
        Expression point = cirlcePoint;
        int times = 1;
        while (!cirlcePoint.equals(point = point.next()) && times < value) {
            times++;
        }
        System.out.println(times);
    }
}

解決了從小就被告知的,各個(gè)位數(shù)相加和能被3整除那么這個(gè)數(shù)就能被3整除的原理,而且擴(kuò)展到非2 5的所有素?cái)?shù),是不是很開心呢~~
證明可能有不嚴(yán)謹(jǐn)?shù)牡胤?,希望大家不吝賜教哦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章數(shù)和數(shù)的運(yùn)算 一概念 (一)整數(shù) 1整數(shù)的意義 自然數(shù)和0都是整數(shù)。 2自然數(shù) 我們在數(shù)物體的時(shí)候,用來表示...
    meychang閱讀 2,847評論 0 5
  • 音色成分: 干凈利落不拖拉 輕松愉悅愜意音 語速較快小語調(diào) 吐字不清迷糊音 鑒定結(jié)果:青受 調(diào)節(jié)值:8.8 溫...
    ovoouo閱讀 299評論 0 0
  • 小堅(jiān):沒有生活的動力怎么辦? 小持:有感興趣的事或目標(biāo)嗎? 小堅(jiān):沒有 小持:發(fā)現(xiàn)自己曾經(jīng)做過的令自己感覺不錯(cuò)的事...
    阿奮圖圖閱讀 211評論 0 0

友情鏈接更多精彩內(nèi)容