逆欧拉函数

这里写图片描述
因为
这里写图片描述
于是逆推,x=φ(x)*(p1/(p1-1))…(pn/(pn-1))
搞出10^7以内的质数值,根据上面的式子不断的递归,直到φ(x)==1就找到了相应的x了。
但是测试数据和STD不太对,因为STD当φ(N)==1,不会筛2,,其实是可以晒的。
只要把返回写到后面去就行了。

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <algorithm>
#define ll long long
using namespace std;
const int maxm=1e7+1;
ll prime[999999],cnt;
bool vis[11000000];
ll ans[maxm],tot;
void pre()
{
    vis[1]=1;

    for(int i=1;i<=maxm;i++)
     {
        if(!vis[i])
         prime[++cnt]=i;
        for(int j=1;j<=cnt&&i*prime[j]<=maxm;j++)
        {
            vis[prime[j]*i]=1;
            if(i%prime[j]==0)
             break;
        }
     }
}
ll mul(ll x,ll y,ll mod)
{
    ll ans=0;
    while(y)
    {
        if(y%(1ll*2)) ans=(ans+x%mod)%mod;
        y/=(1ll*2);
        x=(x%mod+x%mod)%mod;
    } 
    return ans;
}
ll fast_pow(ll x,ll y,ll m)
{  
    ll ans=1;  
    x%=m;  
    while(y)  
    {  
        if(y%2)  
          ans=mul(ans, x, m);  
        y/=2;  
        x=mul(x, x, m);  
    }  
    return ans;  
}  
bool MR(ll n)  
{  
    if(n == 2) return 1;  
    if(n < 2 || !(n & 1)) return 0;  
    ll m=n-1;  
    ll k=0;  
    while((k&1)==0)  
    {  
        k++;  
        m/=2;  
    }  
    for(int i=0; i<12; i++)  
    {  
        ll a=rand()%(n - 1)+1;  
        ll x=fast_pow(a, m, n);  
        ll y=0;  
        for(int j=0; j<k; j++)  
        {  
            y=mul(x,x,n);  
            if(y==1&&x!=1&&x!=n-1) return 0;  
            x = y;  
        }  
        if(y!=1) return 0;  
    }  
    return 1;  
}  
void dfs(ll x,ll y,ll z)
{

    if(x+1>prime[cnt]&&MR(x+1))
     ans[++tot]=(x+1)*y;
    for(int i=z;i>=1;i--)
    if(x%(prime[i]-1)==0)
    {
        ll t1=x/(prime[i]-1);
        ll t2=y;
        ll c=1;
        while(t1%c==0)
        {
            t2*=prime[i];
            dfs(t1/c,t2,i-1);
            c*=prime[i];
        }
    }
    if(x==1)
    {
        ans[++tot]=y;
        return;
    }
}
int main()
{
    ll n,k;
    scanf("%lld%lld",&n,&k);
    pre();

    dfs(n,1,cnt);
    sort(ans+1,ans+tot+1);

    for(int i=1;i<=k;i++)
     printf("%lld ",ans[i]); 

    return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
复变函数与积分变换 作 者: 王志勇 编 出版时间:2014 内容简介   本书是参照近年全国高校工科数学教学指导委员会工作会议的意见,结合电子类工科实际编写而成的。内容设计简明,叙述通俗易懂,定位应用和能力培养,具有针对性、先进性和系统性。本书内容包括复变函数与解析函数、复变函数的积分、级数与留数、傅立叶变换、拉普拉斯变换、Z变换与小波变换。每章习题配有基础和提高两种题型,编有相关科学家介绍,便于读者自学。本书可作为高等院校相关专业的数学教材,也可供科学和工程技术人员参考使用。 目录 第1章复变函数与解析函数(1) 1.1复数(2) 1.1.1复数的概念(2) 1.1.2复数的表示法(2) 1.1.3复数的运算(4) 1.1.4复球面(7) 1.2复变函数(8) 1.2.1区域(8) 1.2.2复变函数的概念(10) 1.2.3复变函数的极限及连续性(11) 1.3解析函数(13) 1.3.1导数与微分(13) 1.3.2解析函数(15) 1.3.3初等函数(18) *1.4保角映射(22) 1.4.1保角映射的概念(22) 1.4.2几种简单的保角映射(24) 数学家简介——欧拉(27) 习题一(29) 第2章复变函数的积分(31) 2.1复变函数的积分(32) 2.1.1复积分的概念(32) 2.1.2复积分的性质(33) 2.1.3复积分的计算(33) 2.2柯西积分定理(37) 2.2.1柯西基本定理(37) 2.2.2复合闭路定理(40) 2.3柯西积分公式(42) 2.3.1柯西积分公式(42) 2.3.2解析函数的高阶导数(45) 2.3.3解析函数与调和函数(48) 数学家简介——柯西(51) 习题二(52) 第3章 级数与留数(54) 3.1幂级数及其展开(54) 3.1.1幂级数(54) 3.1.2泰勒级数(60) 3.2洛朗级数及其展开式(62) 3.2.1双边幂级数(62) 3.2.2洛朗级数(63) 3.3留数(65) 3.3.1孤立奇点(65) 3.3.2留数的概念及留数定理(68) 3.3.3留数的计算(69) 3.4留数的应用(71) 3.4.1 计算∫2π0f(cosθ,sinθ)dθ型积分(71) 3.4.2计算∫+∞-∞P(x)Q(x)dx型积分(72) ?3.4.3计算∫+∞-∞f(x)eiλxdx型积分(73) 数学家简介——泰勒(76) 习题三(77) 第4章傅里叶变换(79) 4.1傅里叶变换(79) 4.1.1傅里叶级数的复指数形式(79) 4.1.2傅里叶变换(81) 4.2傅里叶变换的性质(87) 4.2.1傅里叶变换的性质(87) 4.2.2卷积(88) 4.3离散傅里叶变换及其性质(91) *4.3.1离散傅里叶变换的定义(91) 4.3.2离散傅里叶变换的基本性质(92) 4.4傅里叶变换的应用(94) 4.4.1解积分、微分方程问题(94) 4.4.2求解偏微分方程问题(95) 4.4.3电路系统求解问题(96) 数学家简介——傅里叶(97) 习题四(98) 第5章拉普拉斯变换与z变换(100) 5.1拉普拉斯变换的概念(101) 5.1.1问题的提出(101) 5.1.2拉普拉斯变换的定义(101) 5.1.3拉普拉斯变换的存在定理(102) 5.2拉普拉斯变换的性质(103) 5.2.1基本性质(103) 5.2.2卷积(106) *5.2.3极限性质(108) 5.3拉普拉斯变换(109) 5.4拉普拉斯变换的应用(110) 5.5z变换(113) 5.5.1z变换的定义(114) 5.5.2z变换的变换(115) 5.5.3z变换的性质和应用(117) 5.5.4z变换与拉普拉斯变换的关系(117) *5.6小波变换简介(118) 5.6.1傅里叶变换的局限(119) 5.6.2窗口傅里叶变换(119) 5.6.3小波变换(120) 5.6.4小波变换的性质(122) 数学家简介——拉普拉斯(124) 习题五(125) 附录习题答案(128)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值