题面

题意:给你一个500000长度的数字,然后环形的让每位做头,例如123,就有123,231,312三个,然后问这n个数字的和S,S的最小非1因子是多少

题解:每个数字在每个位置都会有一次,如果说所有数字之和为A(1234的A就是10),那么原始长度为N的数,S就一定长成AAAAAAAAAAAAAA

也就是  S=A*10^0+A*10^1+A*10^2+...+A*10^(n-1)

10S=             A*10^1+A*10^2+...+A*10^(n-1)+A*10^n

9S=A*10^n-A

那其实S就是A*1111111(n个1),也就是找A和111111(n个1)因子中最小的那个 这个数当然也一定是质数

对于A,我们知道500000*9=4500000,也就是A最大这么多,可以暴力sqrt(A),找到他最小的因子

但是对于11111(n个1),他的最小因子就没有规律,通过打表可以发现,除了每3项有一个可以被3整除,还常有11,41,并时不时的出现他自身(也就是说这个数是质数)

但是题目说了保证答案是小于5*10^6 所以我们可以预处理这范围内的所有素数,然后挨个判断能否被1111(n个1)整除

那这样其实我们就可以直接对S进行操作,不需要拆分了,S=(A*10^n-A)/9,枚举质因子p 意思就是要满足(A*10^n-A)%(9p)==0就行了

 #include<bits/stdc++.h>
using namespace std;
char c;
int x,tot,ans;
int f[];
int pow(int a,int b,int mod)
{
if (b==) return a;
long long t=pow(a,b/,mod);
t=t*t%mod;
if (b%) t=t*a%mod;
return t;
}
int check(int n,int s,int m)
{
int res=(pow(,n,*m)+*m-)%(*m)/;
return 1LL*res*s%m==;
}
int main()
{
for(int i=;i<;i++)
if (!f[i])
for(int j=i+i;j<;j+=i) f[j]=;
while (scanf("%c",&c)!=EOF)
{
if (c>='' && c<='')
{
tot++;
x+=c-'';
}else break;
}
for(int i=;i<=;i++)
if (!f[i] && check(tot,x,i))
{
printf("%d",i);
return ;
}
}

hihoCoder-1839 榶榶榶 数学的更多相关文章

  1. hihocoder 1489(微软2017, 数学,模拟)

    题目链接:http://hihocoder.com/problemset/problem/1489?sid=1587434 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 ...

  2. hihoCoder #1498 : Diligent Robots【数学】

    #1498 : Diligent Robots 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 There are N jobs to be finished. It t ...

  3. hihoCoder 1584 Bounce 【数学规律】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)

    #1584 : Bounce 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 For Argo, it is very interesting watching a cir ...

  4. ACM学习历程—Hihocoder 1164 随机斐波那契(数学递推)

    时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 大家对斐波那契数列想必都很熟悉: a0 = 1, a1 = 1, ai = ai-1 + ai-2,(i > 1). ...

  5. hihoCoder #1246 : 王胖浩与环 (数学)

    题意: 有一个环形序列,可以将其切成连续的k段子序列,那么gcd( 每段子序列的和 )就是优美程度.输出n个整数,表示当k=[1, n] 时的最大优美程度. 思路: 观察一下,当切成1段的时候,gcd ...

  6. hihoCoder #1234 : Fractal(数学简单题)

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 This is the logo of PKUACM 2016. More specifically, the logo i ...

  7. HihoCoder - 1789:阶乘问题 (简单数学)

    描述 给定 n, k,求一个最大的整数 m,使得 km 是 n! 的约数 输入 第一行两个正整数 n, k 2 ≤ n,k ≤ 109 输出 输出最大的 m 样例输入 5 2 样例输出 3 思路:我们 ...

  8. hihocoder #1068 : RMQ-ST算法 ( RMQ算法 O(nlogn)处理 O(1)查询 *【模板】 1)初始化d数组直接读入+计算k值用数学函数log2()==*节约时间 )

    #1068 : RMQ-ST算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在美国旅行了相当长的一段时间之后,终于准备要回国啦!而在回国之前,他们准备 ...

  9. hihocoder 1584 Bounce (数学 && 规律) ACM-ICPC北京赛区2017网络赛

    题意: 给定一副n*m的格子图, 问从左上角的点开始往右下角滑,碰到墙壁就反弹, 碰到角落就停止, 问恰好经过一次的格子有多少个. 如图,恰好经过一次的格子有39个. 分析: 首先要引入两个概念, “ ...

随机推荐

  1. 【python】os.getcwd和getcwdu

    print os.getcwd(), type(os.getcwd()) print os.getcwdu(), type(os.getcwdu()) 结果如下: C:\Users\Administr ...

  2. c#日期计算

    /// <summary> /// 计算日期的间隔(静态类) /// </summary> public static class dateTimeDiff { /// < ...

  3. this、super关键字以及他们各自的作用

    this:代表当前对象的引用,谁来调用我,我就代表谁 super:代表当前对象父类的引用 this和super的使用区别 A:调用成员变量 this.成员变量  调用本类的成员变量,也可以调用父类的成 ...

  4. 自定义View实现拖动小圆球,并随机改变其颜色

    //简单实现package com.example.demo1; import android.content.Context;import android.graphics.Canvas;impor ...

  5. BZOJ 1645: [Usaco2007 Open]City Horizon 城市地平线 扫描线 + 线段树 + 离散化

    Code: #include<cstdio> #include<algorithm> #include<string> #define maxn 1030000 # ...

  6. BZOJ 3510: 首都 LCT + multiset维护子树信息 + 树的重心

    Code: #include<bits/stdc++.h> #define maxn 200000 #define inf 1000000000 using namespace std; ...

  7. 在vue中,让表格td下的textraea自适应高度

    1.效果图 2.数据是动态获取的,因此存在一个异步的问题,解决的思路是数据获取到渲染在textarea中以后,获取文字的真实高度,然后把这个高度给textarea 3.具体代码以及步骤 (1)再cre ...

  8. 【剑指Offer】21、栈的压入、弹出序列

      题目描述:   输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2 ...

  9. PAT 1065. A+B and C

    Given three integers A, B and C in [-263, 263], you are supposed to tell whether A+B > C. Input S ...

  10. MongoDB简介、特点、原理、使用场景、应用案例

    简介 MongoDB[1] 是一个基于分布式文件存储的数据库.由C 语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB[2] 是一个介于关系数据库和非关系数据库之间的产品, ...