日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

URAL1204. Idempotents(扩展欧几里得)

發(fā)布時(shí)間:2023/12/19 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 URAL1204. Idempotents(扩展欧几里得) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1204

大體推推 會(huì)出來這個(gè)式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0;

因?yàn)閜,q都為素?cái)?shù) 那也就是說x和x-1中必定包含這兩個(gè)數(shù) 而且一個(gè)里面只能有一個(gè) 不然會(huì)大于等于N

當(dāng)上面的k=0時(shí) x=0||x=1 這是固定的?

然后 {x-pi=0; (x-1)-qi = 1}化這一組 就會(huì)變成pi-qi=1 這就變成了擴(kuò)展歐幾里得 必定存在一組解 解出來帶入一下 注意一下負(fù)數(shù)就可以了 下一組同樣這樣計(jì)算

{x-pi=1; (x-1)-qi = 0}

1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 #include<cmath> 7 #include<map> 8 using namespace std; 9 #define N 35000 10 #define LL long long 11 int p[N],g; 12 map<int,int>f; 13 void init() 14 { 15 int i,j; 16 for(i = 2; i <= 32000 ; i++) 17 if(!f[i]) 18 { 19 for(j = i+i ; j < N ; j+=i) 20 f[j] = 1; 21 } 22 for(i = 2; i < N ; i++) 23 if(!f[i]) 24 p[++g] = i; 25 } 26 void exgcd(int a,int b,int &x,int &y) 27 { 28 if(b==0) 29 { 30 x=1;y=0; 31 return ; 32 } 33 exgcd(b,a%b,x,y); 34 int t = x; 35 x = y; 36 y = t-a/b*y; 37 } 38 int main() 39 { 40 int k,n,x,y,a,b,i; 41 init(); 42 cin>>k; 43 while(k--) 44 { 45 cin>>n; 46 int tx = sqrt(n*1.0); 47 for(i = 1; i <= g ; i++) 48 { 49 int o = p[i]; 50 if(n%o==0) 51 { 52 a = o; 53 b = n/o; 54 break; 55 } 56 if(o>tx) break; 57 } 58 exgcd(a,b,x,y); 59 int x1 = x<0? a*x+a*b:a*x; 60 exgcd(b,a,x,y); 61 int x2 = x<0? b*x+b*a:b*x; 62 printf("0 1 %d %d\n",min(x1,x2),max(x1,x2)); 63 } 64 return 0; 65 } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/shangyu/p/3409227.html

總結(jié)

以上是生活随笔為你收集整理的URAL1204. Idempotents(扩展欧几里得)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。