#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void sol(ll x){
int y=0;
for(ll i=2;i*i<=x;++i)
if(x%i==0){
int j=0;
for(;x%i==0;x/=i)++j;
if(y++)cout<<"*";
cout<<i;
if(j!=1)cout<<"^"<<j;
}
if(x!=1){
if(y)cout<<"*";
cout<<x;
}
cout<<endl;
}
bool jud(ll x){
for(ll i=2;i*i<=x;++i)
if(x%i==0)return 0;
return 1;
}
ll wop(ll s,ll n,ll p){
ll t=1;
for(;n;n>>=1){
if(n&1)t=t*s%p;
if(n>1)s=s*s%p;
}
return t;
}
ll phi(ll x){
ll s=x;
for(ll i=2;i*i<=x;++i)
if(x%i==0){
while(x%i==0)x/=i;
s=s/i*(i-1);
}
if(x!=1)s=s/x*(x-1);
return s;
}
ll gen(ll p){
static ll c[16];
ll s=phi(p),x=s;
int k=0;
for(ll i=2;i*i<=x;++i)
if(x%i==0){
while(x%i==0)x/=i;
c[k++]=i;
}
if(x!=1)c[k++]=x;
for(ll i=2;;++i){
int j=0;
while(j!=k&&wop(i,s/c[j],p)!=1)
++j;
if(j==k)return i;
}
}
void out(ll p){
int j=__builtin_ctzll(p-1);
cout<<setw(8)<<p;
cout<<setw(4)<<gen(p);
cout<<" 2^"<<j;
cout<<" * "<<setw(5)<<(p-1>>j);
cout<<endl;
}
int main(){
for(ll i=1;;++i){
ll j=(i<<20)+1;
if(j>2e9)break;
if(jud(j))out(j);
}
}

FFT质数打表程序的更多相关文章

  1. PHP自动分表程序

    http://blog.zol.com.cn/2210/article_2209590.html /** * 分表程序 *  * @author Shen Xi shen.xi@zol.com.cn  ...

  2. python作业员工信息表程序(第四周)

    作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...

  3. HDU——1286找新朋友(欧拉函数+质数打表)

    找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. ABAP 通过字段找表程序

    2.获取数据保存在哪个数据表的方法: 1.前台对指定栏位 使用F1帮助找表,2.st05 跟踪业务操作过程,检索需要的数据表,(此方法找表很高效)3.对于文本字段找表,可以找到前台维护处,->维 ...

  5. python九九乘法表程序代码

    按照c语言的思路来考虑python的,方法很简单,直接运用双重循环即可,本代码为了代码量少采用的是while嵌套双循环. 取两个随机变量 (1)i和j都从1开始(因为表中最小数值为1) (2)i控制第 ...

  6. 用shell编写小九九乘法表程序

    1.使用for循环 运行结果: 2.方法二:for循环 运行结果: 备注: 1. echo -n 的意思是不自动换行,因为在linux shell中 echo到最后一个字符时会自动换行的,所以echo ...

  7. bzoj 1053 [HAOI2007]反素数ant——关于质数的dfs / 打表

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1053 写了个打表程序. #include<iostream> #include& ...

  8. 用友时空B/S表单外挂(接口)程序操作说明文档

    用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...

  9. BZOJ3798: 特殊的质数(分段打表)

    题意 题目链接 Sol 分块打表,非常好的思想. 对于这种求$[A, B]$区间内xxx的数的个数,然后$B$又不算是特别大的题,考虑分段打表 每个块的大小为$10^5$,打$3 * 10^3$个.然 ...

随机推荐

  1. [BZOJ 1997][HNOI2010]Planar(2-SAT)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1997 分析: 考虑每条边是在圈子里面还是圈子外面 所以就变成了2-SAT判定问题了= ...

  2. Android闹钟开发与展示Demo

    前言: 看过了不少安卓闹钟开发的例子,都是点到为止,都不完整,这次整一个看看. 一.闹钟的设置不需要数据库,但是展示闹钟列表的时候需要,所以需要数据库: public class MySQLiteOp ...

  3. SQL复杂查询和视图(2)

    分组查询 SQL可以将检索到的元组按某一条件进行分组,分组是属性值相同的为一组 求每个学生的平均成绩 SELECT sn,AVG(score)FROM scGROUP BY sn 先按sn进行分组,即 ...

  4. Linux 配置只安装 64 位软件包

    Centos.RHEL等系统,yum 安装的时候有时候会安装32的,然而我们只需要安装64位的软件! 解决方法: yum只安装 64 位的包,只需在 /etc/yum.conf 中加入 "e ...

  5. android开发------编写用户界面之相对布局

    今天要说的是RelativeLayout.RelativeLayout相对于LinearLayout的主要不同点在于它需要一个参照物. 我们先来看一下官方对这个布局的解释: RelativeLayou ...

  6. springMvc发布restFull风格的URL

    package zpark.controller; import org.springframework.stereotype.Controller; import org.springframewo ...

  7. mybatis Generator配置文件详解

    这里按照配置的顺序对配置逐个讲解,更细的内容可以配合中文文档参照. 1. 配置文件头 <?xml version="1.0" encoding="UTF-8&quo ...

  8. 通过js判断访客显示器屏幕分辨率并给出提示

    <script> <!-- fw="1920";fh="1200"; var uw=window.screen.width; var uh=w ...

  9. 【CodeForces 266C】Below the Diagonal(模拟)

    题目每次把空列换到最后一列,把非空行换到最下一行. #include<cstdio> #include<algorithm> #define N 1005 using name ...

  10. XHTML与HTML的区别

    XHTML:可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTML)类似,不过语法上更加严格. 参考:http://baike.baidu.com/search/word?word= ...