美文网首页NumberTheory
约瑟夫的数论问题

约瑟夫的数论问题

作者: 雨落八千里 | 来源:发表于2019-08-07 17:30 被阅读0次

余数呈商的等差数列,那么我们可以枚举商的整数部分,求每一个的等差数列和,假设商的整数部分为i,那么末项是k%(k/(i-1)),首项是k%(k/i+1),我们枚举到sqrt(k),如果n>k的话,那么上面的部分就是(n-k)*k.

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,k;
ll qurey(ll n,ll k)
{
      ll sum=0;
      ll a=(ll)sqrt(k);
      ll b=k/a;
      ll i;
      if(n>k)
      {
            sum+=(n-k)*k;
      }
      for( i=a;i>1;i--)
      {
            ll e=k/(i-1);
            ll s=k/i;
            if(s>n)
            {
                  break;
            }
            if(e>n)
            {
                  e=n;
            }
            sum+=(k%(s+1)+k%e)*(e-s)/2;
      }
      for(i=1;i<=n&&i<=b;i++)
      {
            sum+=k%i;
      }
      return sum;
}
int main( )
{
      while(~scanf("%lld%lld",&n,&k))
      {
            cout<<qurey(n,k)<<endl;
      }
      return 0;
}
for( i=a;i>1;i--)
{
    ll e=k/(i-1);
    ll s=k/i;//k=100,i=4,i-1=3;e=33,s=25;所以100/34=2;100/33=3,100/32=3,100/31=3,100/30=3
    if(s>n) //100/29=3,100/28=3,100/27=3,100/26=3;100/25=4;100 % 26 = 22,100 % 27 = 19,100 % 28 = 16,100 % 29 = 13
     {      //100%30=10,~100%33=3;所以第一项是k%(k/i+1),最后一项k%(k/(i-1))
              break;
     }
     if(e>n)//模数最大为n;
     {
              e=n;
     }
     sum+=(k%(s+1)+k%e)*(e-s)/2;//根据等差公式求和(首项加末项)乘以项除以2;
}

知道商是个定值i,可以找出为一系列数(k/i)使得K / 数等于这个商,找出(商+1)(i-1)的一系列数的的一个(k/(i-1))。

相关文章

  • 约瑟夫的数论问题

    余数呈商的等差数列,那么我们可以枚举商的整数部分,求每一个的等差数列和,假设商的整数部分为i,那么末项是k%(k/...

  • 第9章 数论

    数论研究的是整数。 问题:为什么要研究整数?问题:数论有什么实际价值? 数论是现代加密技术的基础,而加密技术使得安...

  • 约瑟夫环问题

    约瑟夫环问题约瑟夫环描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围...

  • 算法面经---单向循环链表(解决约瑟夫问题)

    单向循环链表--解决约瑟夫问题 一、单向循环链表的应用场景 1.1 问题描述 Josephu(约瑟夫、约瑟夫环) ...

  • 约瑟夫问题

    今天看了一下约瑟夫问题,嗯,感觉自己智商欠费:( 还是来总结下好啦~ 问题 约瑟夫是犹太军队的一个将军,在反...

  • 约瑟夫问题

    题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下...

  • 约瑟夫问题

    要是你怎么制定游戏规则? 现在有前面15个好人和后面15个坏人,他们围成一圈。现在从第一个好人开始,数到第n个人就...

  • 约瑟夫问题

    问题来源 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太人与Josephu...

  • 约瑟夫问题

    源文件josephus.c

  • 约瑟夫问题

    约瑟夫问题 一、数组解法 二、循环队列 三、数学解法

网友评论

    本文标题:约瑟夫的数论问题

    本文链接:https://www.haomeiwen.com/subject/kidadctx.html