Euler函數: m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函數: 定義:phi(m) 表示小于等于m并且與m互質的正整數的個數。 phi(m) = p1^(r1-1)*(p1-1) * p2^(r2-1)*(p2-1) * …… * pn^(rn-1)*(pn-1) = m*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pn) = p1^(r1-1)*p2^(r2-1)* …… * pn^(rn-1)*phi(p1*p2*……*pn) 定理:若(a , m) = 1 則有 a^phi(m) = 1 (mod m) 即a^phi(m) - 1 整出m 在實際代碼中可以用類似素數篩法求出 for (i = 1 i < MAXN i++) phi[i] = i for (i = 2 i < MAXN i++) if (phi[i] == i) { for (j = i j < MAXN j += i) { phi[j] /= i phi[j] *= i - 1 } } 容斥原理:定義phi(p) 為比p小的與p互素的數的個數 設n的素因子有p1, p2, p3, … pk 包含p1, p2…的個數為n/p1, n/p2… 包含p1*p2, p2*p3…的個數為n/(p1*p2)… phi(n) = n - sigm_[i = 1](n/pi) + sigm_[i!=j](n/(pi*pj)) - …… +- n/(p1*p2……pk) = n*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pk)
上傳時間: 2014-01-10
上傳用戶:wkchong
問題描述: 給定n位正整數a,去掉其中任意k個數字后,剩下的數字按原次序排列成一個新的正整數。 算法設計: 給定n (1<=n<=200)位的正整數a和k,此時,k小于n。 試著設計一個算法,找出刪去k個數,剩下數字組成的新數最小的刪數方案。
上傳時間: 2014-12-21
上傳用戶:qq21508895
求n個自然數的全排列,輸入n,程序將輸出從1到n著n個自然數的全排列。
標簽:
上傳時間: 2017-02-03
上傳用戶:拔絲土豆
求質數法 判斷n是否為質數 判斷n是否為質數時,將n除以n以下的整數直至2為止,以觀察n能 除盡,這時如有被除盡的數,便被視為非質數而脫離出回圈。到了最後如無除盡的數,則此數即為質數。
標簽:
上傳時間: 2013-12-27
上傳用戶:xcy122677
根據一個有權的無向圖生成指定結點(路由器)的路由表設有結點N,N的路由表由若干個路由項組成,路由項是<目的結點,下一跳>的二元組,其中目的結點是以N結點為源結點,通過N結點可以直接到達(目的結點是N結點的鄰居)或通過N結點的鄰居可間接到達的結點,其中下一跳即N結點的某領居,通過該鄰居可間接到達目的結點,且到達目的結點的路徑為最小代價路徑.
上傳時間: 2017-05-16
上傳用戶:ruan2570406
Fortran - Tóm tắ t nộ i dung mô n họ c Các khái niệ m và yế u tố trong ngô n ngữ lậ p trình FORTRAN. Các câ u lệ nh củ a ngô n ngữ FORTRAN. Cơ bả n về chư ơ ng chư ơ ng dị ch và mô i trư ờ ng lậ p trình DIGITAL Visual Fortran. Viế t và chạ y các chư ơ ng trình cho các bài toán đ ơ n giả n bằ ng ngô n ngữ FORTRAN.
上傳時間: 2013-12-25
上傳用戶:songrui
metricmatlab ch ¬ ng 4 Ma trË n - c¸ c phÐ p to¸ n vÒ ma trË n. 4.1 Kh¸ i niÖ m: - Trong MATLAB d÷ liÖ u ® Ó ® a vµ o xö lý d íi d¹ ng ma trË n. - Ma trË n A cã n hµ ng, m cét ® î c gä i lµ ma trË n cì n m. § î c ký hiÖ u An m - PhÇ n tö aij cñ a ma trË n An m lµ phÇ n tö n» m ë hµ ng thø i, cét j . - Ma trË n ® ¬ n ( sè ® ¬ n lÎ ) lµ ma trË n 1 hµ ng 1 cét. - Ma trË n hµ ng ( 1 m ) sè liÖ u ® î c bè trÝ trª n mét hµ ng. a11 a12 a13 ... a1m - Ma trË n cét ( n 1) sè liÖ u ® î c bè trÝ trª n 1 cét.
標簽: metricmatlab 203 184 tr
上傳時間: 2017-07-29
上傳用戶:來茴
計算序列的卷積和相關函數 1. 計算序列h(n)和x(n)的卷積,h(n)*x(n)。 // // // // 2. 計算序列h(n)和h(n-45)的相關函數。
上傳時間: 2017-09-10
上傳用戶:bcjtao
#include<stdio.h> void main(void) {int n,k,derivata,a[10],i printf("n=") scanf(" d",&n) for(i=0 i<=n i++) { printf("a[ d]=",i) scanf(" d",&a[i]) } printf("k=") scanf(" d",&k) for(derivata=1 derivata<=k derivata++) { for(i=0 i<=n i++) a[i]=a[i]*(n-i) n-- for(i=0 i<=n i++) printf(" d ",a[i]) printf("\n") }}
標簽: void derivata include printf
上傳時間: 2017-09-17
上傳用戶:duoshen1989
#include <stdlib.h> #include<stdio.h> #include <malloc.h> #define stack_init_size 100 #define stackincrement 10 typedef struct sqstack { int *base; int *top; int stacksize; } sqstack; int StackInit(sqstack *s) { s->base=(int *)malloc(stack_init_size *sizeof(int)); if(!s->base) return 0; s->top=s->base; s->stacksize=stack_init_size; return 1; } int Push(sqstack *s,int e) { if(s->top-s->base>=s->stacksize) { s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int)); if(!s->base) return 0; s->top=s->base+s->stacksize; s->stacksize+=stackincrement; } *(s->top++)=e; return e; } int Pop(sqstack *s,int e) { if(s->top==s->base) return 0; e=*--s->top; return e; } int stackempty(sqstack *s) { if(s->top==s->base) { return 1; } else { return 0; } } int conversion(sqstack *s) { int n,e=0,flag=0; printf("輸入要轉化的十進制數:\n"); scanf("%d",&n); printf("要轉化為多少進制:\n"); scanf("%d",&flag); printf("將十進制數%d 轉化為%d 進制是:\n",n,flag); while(n) { Push(s,n%flag); n=n/flag; } while(!stackempty(s)) { e=Pop(s,e); switch(e) { case 10: printf("A"); break; case 11: printf("B"); break; case 12: printf("C"); break; case 13: printf("D"); break; case 14: printf("E"); break; case 15: printf("F"); break; default: printf("%d",e); } } printf("\n"); return 0; } int main() { sqstack s; StackInit(&s); conversion(&s); return 0; }
上傳時間: 2016-12-08
上傳用戶:愛你198