摘要:
快速查找素数时间限制:1000ms | 内存限制:65535KB难度:3描述现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。输入给出一个正整数数N(N<=2000000)但N为0时结束程序。测试数据不超过100组输出将2~N范围内所有的素数输出。两个数之间用空格隔开样例输入510110样例输出2 3 52 3 5 72 3 5 7 11View Code #include <stdio.h>#include <string.h>#define MAXN 2000001int vis[MAXN];int p[200000]; //存放素数v 阅读全文
摘要:
例题: 幂取模 输入正整数a、n和m ,输出a^n mod m 的值。a,n,m<=10^9.第一种方法:(很容易想出)View Code #include <iostream>using namespace std;int pow_mod(int a,int n,int m){ int ans=1; for(int i=0; i<n; i++) ans=(int)((long long)ans*a % m); return ans;}int main(){ int a,n,m; cin>>a>>n>>m; cout<<p 阅读全文
摘要:
次方求模时间限制:1000 ms | 内存限制:65535 KB难度:3描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100) 每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000) 输出 输出a的b次方对c取余之后的结果样例输入32 3 53 100 1011 12345 12345样例输出3110481View Code #include <iostream>using namespace std;long long f(long long a,long long b,long long c 阅读全文
摘要:
例题: 大整数取模 输入正整数n和m,输出n mod m的值。n<=10^100,m<=10^9.分析: 首先,把大整数写成“自左向右”的形式:1234=((1*10+2)*10+3)*10+4,然后用前面的公式,每步取模。View Code #include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){ char n[200]; int m; scanf("%s %d",n,&m); int len=strle 阅读全文