tópicos teoria dos números

P1082 congruência equação

Isto é, um molde de encontrar o inverso elemento b x
porque x únicas no sentido fieira b, o menor número inteiro que é uma solução elemento inversa

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<iomanip>
#include<cstring>
#define R register
#define EN printf("\n")
#define LL long long
inline LL read(){
    LL x=0,y=1;
    char c=getchar();
    while(c<'0'||c>'9'){if(c=='-') y=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+(c^48);c=getchar();}
    return x*y;
}
int gcd(LL a,LL b,LL& x,LL& y){
    if(b){
        int d=gcd(b,a%b,y,x);
        //d=y*b+x*(a%b)
        //d=y*b+x*(a-(a/b)*b)
        //d=y*b+x*a-x*(a/b)*b
        //d=x*a+(y-(a/b)*x)*b
        y-=(a/b)*x;
        return d;
    }
    x=1;y=0;
    //赋值后,上一层的d=0*0+a*1=a
    return a;
}
int main(){
    LL a=read(),b=read(),x,y;
    gcd(a,b,x,y);
    while(x<0) x+=b;
    x%=b;
    printf("%lld",x);
    return 0;
}

Pesquisar sobre o número P1043

O número de desde cerca de 1 a logaritmicamente e n são cada um números
como o número de divisores e igual a um número múltiplo e (uma relação divisível, pode ser considerado como um relacionamento relação múltiplo ou submúltiplo, isto é, cerca de uma vezes e o número)
assim a resposta é \ (\ sum_ {i = 1 } ^ n \ lfloor \ frac {n} {i} \ rfloor \)

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<stack>
#include<iomanip>
#include<cstring>
#define R register
#define LL long long
inline int read(){
    int x=0,y=1;
    char c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-') y=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        x=x*10+(c^48);
        c=getchar();
    }
    return x*y;
}
int n;
LL ans;
int main(){
    n=read();
    for(R int i=1;i<=n;i++) ans+=n/i;
    printf("%lld",ans);
    return 0;
}

SP2 PRIME1 - O primeiro-Generator

Procura m, primos entre n
devido à determinação do número menor ou igual a N, por isso, se é um número composto, tem de haver um factor primo menos \ (\ sqrt {n} \
) de modo a obter estes números primos, então o m secção N em adição à violência por sua peneiro

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<iomanip>
#include<cstring>
#define R register
#define EN printf("\n")
#define LL long long
inline int read(){
    int x=0,y=1;
    char c=getchar();
    while(c<'0'||c>'9'){if(c=='-') y=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+(c^48);c=getchar();}
    return x*y;
}
const int sqrtn=35000;
int n,m,prime[10006],notpr[35000];
inline void getprime(){
    for(R int i=2;i<=sqrtn;i++){
        if(!notpr[i]) prime[++prime[0]]=i;
        for(R int j=1;j<=prime[0]&&i*prime[j]<=sqrtn;j++){
            notpr[i*prime[j]]=1;
            if(!(i%prime[j])) break;
        }
    }
}
inline void isprime(int num){
    if(num==1) return;
    int sqrt=std::sqrt(num);
    for(R int i=1;i<=prime[0]&&prime[i]<=sqrt;i++)
        if(!(num%prime[i])) return;
    printf("%d\n",num);
}
int main(){
    int t=read();
    getprime();
    while(t--){
        m=read();n=read();
        for(R int i=m;i<=n;i++) isprime(i);
        EN;
    }
    return 0;
}

Acho que você gosta

Origin www.cnblogs.com/suxxsfe/p/12527055.html
Recomendado
Clasificación