当前位置: 首页 > news >正文

UVA 10006 埃氏筛法+快速幂

本题目使用费马定理时,我随机定义了10个数字,循环用费马小定理判断,数组中的值不用和我的相同,随机即可。

#include <iostream>
using namespace std;
typedef unsigned long long ll;
bool isPrime[65007];
ll a[10];
void initA()
{a[0] = 33;a[1] = 97;a[2] = 65;a[3] = 42;a[4] = 61;a[5] = 74;a[6] = 1000;a[7] = 1500;a[8] = 10000;a[9] = 3222;
}
void sieve()
{for (int i = 0; i <= 65000; i++){isPrime[i] = true;}isPrime[0] = false;isPrime[1] = false;for (int i = 1; i * i <= 65000; i++){if (!isPrime[i]){continue;}for (int j = 2 * i; j <= 65000; j += i){isPrime[j] = false;}}
}
ll mulMod(ll a, ll b, ll mod)
{ll res = 0;while (b){if (b & 1){res = (res + a) % mod;}a = (a << 1) % mod;b = b >> 1;}return res;
}
ll powMod(ll a, ll b, ll mod)
{ll res = 1;while (b){if (b & 1){res = mulMod(res, a, mod);}a = mulMod(a, a, mod);b = b >> 1;}return res;
}
bool fermet(int p)
{ll n = p;for (int i = 0; i < 10; i++){int powNumber = powMod(a[i], n, n);if (powNumber != (a[i] % n)){return false;}}return true;
}
bool judgeVal(int p)
{return fermet(p) && !isPrime[p];
}
int main()
{initA();sieve();int p = 0;while (true){scanf("%d", &p);if (p == 0){break;}if (judgeVal(p)){printf("The number %d is a Carmichael number.\n", p);}else{printf("%d is normal.\n", p);}}return 0;
}

http://www.lryc.cn/news/129410.html

相关文章:

  • C++--红黑树
  • Unity 找不到 Navigation 组件的解决
  • 【js】时间和时间戳转换、日期格式化
  • glog体验第一天(0)glog介绍和安装
  • Android 13像Settings一样获取SIM卡信息
  • Can‘t find end of central directory : is this a zip file ? at XMLHttpRequest
  • 基于SpringBoot+Thymeleaf仓库管理系统
  • ubuntu20.04磁盘满了 /dev/mapper/ubuntu--vg-ubuntu--lv 占用 100%
  • 【制作npm包4】api-extractor 学习
  • 神经网络基础-神经网络补充概念-52-正则化网络的激活函数
  • 代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离
  • 神经网络基础-神经网络补充概念-55-为什么是ML策略
  • C++初阶语法——内部类
  • Java基础(十四)面向对象编程 OOP 多态
  • 【Android】解决Lint found fatal errors while assembling a release target
  • CF1195E OpenStreetMap 题解
  • 微信营销系统如何使用效果会更好
  • Linux开机启动程序添加root权限
  • 安卓13解决链接问题
  • ​《乡村振兴战略下传统村落文化旅游设计 》在2023年畅销榜排名465位
  • 实现一个自动保存高CPU占用现场的简易工具
  • 易服客工作室:如何在WordPress网站中举办虚拟活动
  • Java IO流(一)IO基础
  • 区间覆盖 线段覆盖 二分
  • F#奇妙游(20):主动模式
  • OLED透明屏与传统显示屏的区别:探索未来视觉体验的新里程碑
  • 打开软件提示mfc100u.dll缺失是什么意思?要怎么处理?
  • Python 基础 -- Tutorial(二)
  • 11 迭代器|生成器|协程
  • “第三方支付”详解!