大整数因子(高精mod)

大整数的因子

总时间限制: 
1000ms

内存限制: 
65536kB
描述

已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。

输入
一个非负整数c,c的位数<=30。
输出

若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。

样例输入

30

样例输出

2 3 5 6

代码

高精模运算

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int x[100],y[100],k[100],j=0,m,n;
char a[100],b[100];
int main()
{
    scanf("%s",a);
    m=strlen(a);
    for(int i=0; i<=m; i++)
        x[i+1]=a[i]-‘0‘;
    for(int p=2; p<=9; p++)
    {
        memcpy(k,x,sizeof(x));
        for(int i=1; i<=m+1; i++)
        {
            k[i+1]+=(k[i]%p)*10;
            y[i]=k[i]%p;
            k[i]=k[i]/p;
        }
        if(y[m]==0)
        {
            cout<<p<<" ";
            j++;
        }
    }
    if(j==0)cout<<"none";
    return 0;
}

ZlycerQan

#include <iostream>
using namespace std;
int a[10],f=0;
string t;
int main()
{
    cin >> t;
    for (int i = 0; t[i]; i++)
        for (int j = 2; j <= 9; j++)
            a[j] = (a[j] * 10 + t[i] - ‘0‘) % j;
    for (int i = 2; i <= 9; i++)
    if (!a[i])
    {
        cout << i << ‘ ‘;
        f = 1;
    }
    if (!f)
        cout<<"none";
    return 0;
}
时间: 2024-11-06 09:34:52

大整数因子(高精mod)的相关文章

vijos P1375 大整数(高精不熟的一定要做!)

/* 我尼玛这题不想说啥了 亏了高精写的熟..... 加减乘除max都写了 高精二分 */ #include<iostream> #include<cstdio> #include<cstring> #define maxn 1010 #define memcpy(a,b); for(int i=0;i<=1000;i++)a[i]=b[i]; using namespace std; int n[maxn],len,l[maxn],r[maxn],mid[max

大整数因子

原题链接:点我转移 #include<bits/stdc++.h> using namespace std; int main() { char c[31]; while(cin>>c) { int len = strlen(c), flag = 0; for(int i = 2; i <= 9; i++) { int yushu = 0; for(int j = 0; j < len; j++)///对于这里建议列竖式进行计算,就能看出余数的秘密(>^ω^<

codevs 3119 高精度练习之大整数开根 (各种高精+压位)

/* codevs 3119 高精度练习之大整数开根 (各种高精+压位) 二分答案 然后高精判重 打了一个多小时..... 最后还超时了...压位就好了 测试点#1.in 结果:AC 内存使用量: 256kB 时间使用量: 0ms 测试点#2.in 结果:AC 内存使用量: 256kB 时间使用量: 1ms 测试点#3.in 结果:AC 内存使用量: 256kB 时间使用量: 0ms 测试点#4.in 结果:AC 内存使用量: 256kB 时间使用量: 10ms 测试点#5.in 结果:AC 内

VIjos 大整数(超级恶心的高精)

背景 很久很久以前,有个整数很大很囧 描述 一个k(1<=k<=80)位的十进制正整数N,就是所谓的大整数.请你设计程序,对于给出的某一个大整数N,找到满足p^3+p^2+3p<=n的p的最大值. 格式 输入格式 输入数据只有一行,是一个K位的大整数N,行首行未无多余空格 输出格式 输出第一行为你所找到的P最大值,行首行末别乱加东西 样例1 样例输入1 1000000000000001000000000000003000000000000001 Copy 样例输出1 1000000000

自己动手写Java大整数《4》扩展欧几里得和Mod逆

/* *我把这个大整数的系列写成了Code中的项目,见https://code.csdn.net/XUE_HAIyang/bignumber */ 之前已经完成了大整数的表示.绝对值的比较大小.取负值.加减法运算.乘法运算以及除法和余数运算.具体见我的主页前三篇博客(自己动手写Java系列 ). 这篇博客添加求大整数GCD.扩展欧几里得算法和求Mod逆的算法. 扩展欧几里得算法 说道扩展的欧几里得算法,首先我们看下简单的欧几里得算法.经典的欧几里得算法就是 计算两个整数的最大公因子的算法,所基于

13:大整数的因子

13:大整数的因子 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k. 输入 一个非负整数c,c的位数<=30. 输出 若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开:若没有这样的k,则输出"none". 样例输入 30 样例输出 2 3 5 6 查看 提交 统计 提问 #include<

AC日记——大整数的因子 openjudge 1.6 13

13:大整数的因子 总时间限制:  1000ms 内存限制:  65536kB 描述 已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k. 输入 一个非负整数c,c的位数<=30. 输出 若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开:若没有这样的k,则输出"none". 样例输入 30 样例输出 2 3 5 6 思路: 模拟: 来,上代码: #include<cstdio&g

13:大整数的因子(NOIP)

/* 13:大整数的因子 总时间限制: 1000ms 内存限制: 65536kB 描述 已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k. 输入 一个非负整数c,c的位数<=30. 输出 若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开: 若没有这样的k,则输出"none". 样例输入 30 样例输出 2 3 5 6 */ #include <bits/stdc++.h>

1171:大整数的因子

传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1171 [题目描述] 已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k. [输入] 一个非负整数c,c的位数≤30. [输出] 若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开:若没有这样的k,则输出"none". [输入样例] 30 [输出样例] 2 3 5 6 虽然可以直接根据关系求出但我还是用高精