strongbox-数论

题目链接:strongbox(英文版)

结论1:如果x是密码,则gcd(x,n)是密码

结论2:如果x,y是密码,那么gcd(x,y)是密码,反之则不是

约束条件:

1.密码集合A中存在很多,所以尽量小

2.对于任何1<=j<k,不能整除a[j](否则a[j]也是密码)

3.根据结论1,集合中的两个数为a[k],gcd(a[k],n),存在a[k]|gcd(a[k],n)。

思路:

如果x为密码,则密码为x,2x,3x,4x,......,所以x尽量小,n/x即为答案

同时a[k]的因子集合包含密码集合,里面也含有其它不是密码的数

其中gcd(a[i],a[k])不属于,被gcd(a[i],a[k])整除的同样不是,剩下的为密码

寻找里面最小的密码,得到答案

实现方法

计算a[k]==gcd(a[k],n),枚举法寻找a[k]的因子,存在数组q里面

去除gcd(a[i],a[k])的因数(包含本身和它的因子)

寻找最小密码x,da答案为n/x

//代码

#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
ll n,tot;
int k,ans;
ll a[250005],q[250005],f[250005];
ll gcd(ll a,ll b)
{
    return b? gcd(b,a%b):a;
}
int main()
{
    //freopen("strong.in","r",stdin);
    //freopen("strong.out","w",stdout);
    scanf("%lld%d",&n,&k);
    for(ll i=1; i<=k; ++i)
        scanf("%lld",&a[i]);
    a[k]=gcd(a[k],n);
    for(int i=1; i<k; ++i)
        a[i]=gcd(a[i],a[k]);
    //计算寻找因子
    for(ll i=1; i*i<=a[k]; ++i)
        if(a[k]%i==0)
        {
            q[++tot]=i;
            if(i*i!=a[k])
                q[++tot]=a[k]/i;
        }
    sort(q+1,q+tot+1);
    //去除gcd(a[k],a[i])的因数
    for(int i=1; i<k; ++i)
        f[lower_bound(q+1,q+tot+1,a[i])-q]=1;
    for(ll int i=1; i<=tot; ++i)
        if(f[i])
        {
            for(int j=1; j<i; ++j)
                if(q[i]%q[j]==0)
                    f[j]=1;
        }
    //寻找最小密码
    for(ans=1; f[ans]; ++ans);
    printf("%lld",n/q[ans]);

    return 0;
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Strongbox架构是一种用于保护敏感数据的安全架构。它旨在提供强大的数据加密和安全存储解决方案,以保护数据免受未经授权的访问和攻击。 Strongbox架构通常包括以下关键组件: 1. 安全芯片(Secure Element):Strongbox架构通常使用具有高安全级别的硬件安全芯片,用于存储和处理加密密钥和敏感数据。这些芯片具有物理和逻辑安全性措施,可以防止未经授权的访问和攻击。 2. 密钥管理系统(Key Management System):Strongbox架构包括一个密钥管理系统,用于生成、存储和管理加密密钥。这个系统负责确保密钥的安全性,以及对密钥进行适当的访问控制和审计。 3. 安全协议和算法:Strongbox架构使用强大的安全协议和加密算法来保护数据的机密性和完整性。这些协议和算法确保数据在传输和存储过程中得到有效的保护,防止未经授权的访问和篡改。 4. 安全应用编程接口(API):Strongbox架构提供安全的应用编程接口,使开发人员可以利用其安全功能来保护敏感数据。这些API包括加密解密功能、访问控制功能、安全存储功能等,可以集成到应用程序中。 总体而言,Strongbox架构通过使用硬件安全芯片、密钥管理系统以及强大的安全协议和算法,为敏感数据提供了高级别的保护。它可以应用于多种场景,如移动设备安全、支付系统安全、物联网安全等,以确保数据的机密性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值