社区讨论

费马小定理全WA求错

P3383【模板】线性筛素数参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi5hhbmg
此快照首次捕获于
2025/11/19 12:09
4 个月前
此快照最后确认于
2025/11/19 12:09
4 个月前
查看原帖
费马小定理全WA求错~~~
CPP
#include<string>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#include<vector>
#include<iostream>
#include<cctype>
using namespace std;
unsigned long long read()//读入优化
{
    unsigned long long f=1,n=0;
    char c=getchar();
    while(c>'9'||c<'0')
    {
        if(c=='-')
            f=-1;
        c=getchar();
    }
    while(c<='9'&&c>='0')
    {
        n*=10;
        n+=c-'0';
        c=getchar();
    }
    return n*f;
}
bool Prime(unsigned long long a,unsigned long long p,unsigned long long k)
{
    unsigned long long ans=1;
    while(p)
    {
        if(p&1)
            ans=a*ans%k;
        a=a*a%k;
        p>>=1;
    }
    if(ans%k==1)    return true;
    return false;
}
bool prime(unsigned long long k)//费马小定理+二次探测判断素数 
{
    if(k==2)  return true;
    if(Prime(2,k-1,k)&&Prime(k-1,2,k))  return true;
    return false;
}
int main()
{
    unsigned long long m,k,n;
    m=read();k=read();
    for(int i=1;i<=k;i++)
    {
        n=read();
        if(prime(n))    cout<<"Yes\n";
        else cout<<"No\n";
    }
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...