题记:写这篇博客要主是加深自己对扩展筛选的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

每日一道理
俄国作家契诃夫说:“有大狗,有小狗,小狗不该因为大狗的存在而心慌意乱。所有的狗都应该叫,就让他各自用上帝给他的声音。
/*
*   Author: johnsondu
*   time: 2013-4-25
*   meanning: 求出约数和n ^ m的约数和,倏地模取幂,扩展欧几里德,素数筛选
*   problem: LightOj 1054
*   url: http://lightoj.com/volume_showproblem.php?problem=1054
*
*/#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std ;#define max(x, y) (x > y ? x : y)
#define min(x, y) (x < y ? x : y)
#define LL long long
#define M 1000005
#define N 1005
const int Mod = 1000000007LL ;
bool ip[M] ;
int p[M], pl ;
LL n, m, pnum, ans ;struct Node
{int num ;int prime ;
}node[N] ;void init ()
{for (int i = 2; i < M; i ++)ip[i] = true ;pl = 0 ;for (int i = 2; i < M; i ++)if (ip[i]){p[pl ++] = i ;for (int j = 2 * i; j < M; j += i)ip[j] = false ;}
}void divide (int t)
{pnum = 0 ;for (int i = 0; i < N; i ++)node[i].num = 0 ;for (int i = 0;i < pl; i ++){if (t % p[i] == 0){node[pnum].prime = p[i] ;while (t % p[i] == 0){node[pnum].num ++ ;t /= p[i] ;}pnum ++ ;}if (p[i]*p[i] > t)break ;}if (t != 1){node[pnum].prime = t ;node[pnum].num ++ ;pnum ++ ;}
}void exgcd (LL a, LL b, LL &d, LL &x, LL &y)
{if (b == 0){x = 1 ;y = 0 ;d = a ;return ;}exgcd (b, a%b, d, x, y) ;LL tmp = x ;x = y ;y = tmp - a/b * y ;
}LL powerMod (LL a, LL b)
{LL res = 1 ;while (b){if (b & 1){res = ((res % Mod) * a) % Mod ;b -- ;continue ;}a = ((a % Mod) * a) % Mod ;b >>= 1 ;}return res ;
}void solve ()
{ans = 1 ;for (int i = 0; i < pnum; i ++){LL u = node[i].prime, v = node[i].num * m ;ans = (ans * (powerMod (u, v+1) - 1) % Mod + Mod) % Mod ;LL x, y, d ;exgcd (u-1, Mod, d, x, y) ;ans = (ans * x % Mod + Mod) % Mod ;}printf ("%lld\n", ans) ;
}int main ()
{//freopen ("data.txt", "r", stdin) ;init () ;int tcase, cs = 1 ;scanf ("%d", &tcase) ;while (tcase --){scanf ("%lld%lld", &n, &m) ;printf ("Case %d: ", cs ++) ;divide (n) ;solve () ;}return 0 ;
}

文章结束给大家分享下程序员的一些笑话语录: 打赌
飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。  程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。  现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。

扩展筛选LightOj 1054 Efficient Pseudo Code相关推荐

  1. Pseudo code:伪代码

    伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法. [简单示例]输入3个数,打印输出其中最大的数.可用如下的伪代码表示: Begin(算法开始) 输入 A,B,C IF ...

  2. 关于某些 Visual Studio Code 扩展程序无法在浏览器中运行的原因

    只有一部分扩展程序可以在浏览器中运行. 您可以使用"扩展"视图在 Web 中安装扩展,无法安装的扩展将显示警告图标和"了解原因"链接. 安装扩展程序时,它会保存 ...

  3. vscode弹出cmd_先看看 VS Code Extension 知识点,再写个 VS Code 扩展玩玩

    TL;DR 文章篇幅有点长 ,可以先收藏再看 .要是想直接看看怎么写一个扩展,直接去第二部分 ,或者直接去github看源码 . 第一部分 --- Extension 知识点 一.扩展的启动 如何保证 ...

  4. VS CODE离线安装C/C++扩展的方法

    VS CODE离线安装C/C++扩展的方法 很多环境并不联网,但又想使用VS CODE的扩展怎么办呢? 下载安装VS CODE 离线安装C/C++扩展 常用快捷键 下载安装VS CODE 下载链接:h ...

  5. VS code C/C++扩展包依赖cpptools-win32.vsix离线安装

    环境:64位win10 ,VS code版本1.48.2. 在visual studio code下自动安装C/C++扩展包的依赖时,可能会碰到如下异常和提示: 正在更新 C/C++ 依赖项...正在 ...

  6. 推荐几个 VS Code 扩展、主题和字体!

    前言 工欲善其事,必先利其器. VS Code 作为当前最流行的开源代码编辑器之一,要说它为什么这么受大众喜爱,我觉得一是它现代化的界面,二是它强大的扩展系统. 得益于 VS Code 的扩展系统,我 ...

  7. 推荐几个 VS Code 扩展、主题和字体

    前言 工欲善其事,必先利其器. VS Code 作为当前最流行的开源代码编辑器之一,要说它为什么这么受大众喜爱,我觉得一是它现代化的界面,二是它强大的扩展系统. 得益于 VS Code 的扩展系统,我 ...

  8. 使用 Vue.js 构建 VS Code 扩展

    使用 Vue.js 构建 VS Code 扩展 Visual Studio (VS) Code 是开发人员在日常任务中最喜欢使用的代码编辑器之一.它的构建考虑到了可扩展性.在某种程度上,VS Code ...

  9. 如何在Visual Studio Code中编译C ++代码

    PS: This was published on my Blog here. PS:这已发布在我的Blog 此处 . C++ is a statically-typed, free-form, (u ...

最新文章

  1. Nacos 原理:推+拉打造客户端配置信息的实时更新
  2. c++之数组指针作为形参,并返回数组
  3. python英文单词及其出现次数-Python读取英文文件并记录每个单词出现次数后降序输出示例...
  4. BGP MPLS中MCE技术介绍
  5. 关联关系和依赖关系的区别
  6. ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数、运输次数、三种不同的车型,预测需要花费的小时数)来预测一个自变量
  7. typescript get方法_使用 Typescript 构建类型安全的 Websocket 应用
  8. 乱查征信,贷款不想要了吗?
  9. matlab 功率谱分析函数psd用法
  10. ASP.Net Core 3.1 中使用JWT认证
  11. centos 7安装配置python3.7
  12. 水题 Codeforces Beta Round #70 (Div. 2) A. Haiku
  13. [NOIP2017 普及组] 图书管理员
  14. IntelliJ IDEA破解
  15. matlab 8750h,实测结果表明:九代i7-9750H笔记本标压处理器较8750H提升不大
  16. #loj3090 [BJOI2019] 勘破神机
  17. STL——STL简介、STL六大组件
  18. 9-2 time类的加工
  19. Problem O: 笨熊的盒子
  20. 命令行查看Linux机器配置

热门文章

  1. 深入理解ROS技术 【1】ROS下的模块详解(1-65)
  2. 快速排名系统询火星推荐_搜狗网站快速排名系统 - 新站权重如何快速提升
  3. Anaconda conda常用命令
  4. 拼写检查工具是android,Android的文本和输入---拼写检查器(一)-Go语言中文社区...
  5. javascript 数组以及对象的深拷贝方法
  6. 输入参数的数目不足_机器学习算法—KMEANS算法原理及阿里云PAI平台算法模块参数说明...
  7. android studio放置在函数上面看_Android中用Kotlin协程和Retrofit进行网络请求和取消请求...
  8. c语言从串口获取数据,如何通过串口来读写数据,请教达人
  9. G - 数据结构实验之排序七:选课名单
  10. 【Socket网络编程】2.sockaddr 和 sockaddr_in