小C的数学(math)
题目描述:
小C想要成为一名OIer,于是他提前学习数学,为 OI 做好铺垫。
这一天,他的数学老师给了一道题:给定正整数 a,以及给定一个区间 [b, c],其中 b, c 均为整数(b, c 保证非负)。寻找所有合法的 x,满足 b ≤ x ≤ c,并且 a 能够整除 x,即 x 除以 a的余数为 0。可小 C 很懒,不想找出来所有的解,他只想知道这样的 x 有多少个。
输入格式
从文件 math.in 中读取数据。
共一行,依次三个整数 a, b, c,如题目所描述。
输出格式
输出到文件 math.out 中。
仅一行一个数,表示答案。
输入输出样列
输入样例1:
2 3 6
输出样例1:
2
输入样例2:
3 1 7
输出样例2:
2
说明
【样例 1 解释】
x 可以为 4, 6,总共有 2 个。
【样例 2 解释】
x 可以为 3, 6,总共有 2 个。
【数据范围】
对于 40% 的数据:0 < a ≤ 10^3,0 ≤ b ≤ c ≤ 10^3;
对于 70% 的数据:0 < a ≤ 10^7,0 ≤ b ≤ c ≤ 10^7;
对于 100% 的数据:0 < a ≤ 10^9,0 ≤ b ≤ c ≤ 10^18。
【耗时限制】1000ms 【内存限制】512MB
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string.h>
#include <sstream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
long long a,b,c,cnt=0;
scanf("%lld %lld %lld",&a,&b,&c);
cnt=c/a-b/a;
printf("%lld",cnt);
return 0;
}
K13596 小 C 的计算(sum)-T1
题目描述
小 C 擅长计算,整天都在进行着各种各样的计算。
这不,小 C 又开始了一个计算问题:输入两个数 L、R,输出所有 L 到 R 之间(包括 L、R)的质数的和。
输入格式
从文件 sum.in 中读取数据。
一行两个整数 L、R
输出格式
输出到文件 sum.out 中。
一个数
输入输出样列
输入样例1:
15 23
输出样例1:
59
输入样例2:
123456789 123457789
输出样例2:
5925949806
说明
对于 30%的数据,1 ≤ L ≤ R ≤ 1000
对于 100%的数据,1 ≤ L ≤ R ≤ 10^9,R - L ≤ 1000
【耗时限制】1000ms 【内存限制】128MB
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string.h>
#include <sstream>
#include <cstring>
#include <algorithm>
using namespace std;
const long long maxn=1e9+10;
bool isprime(int n){
if(n<2) return false;
for(int i=2;i*i<=n;i++)
if(n%i==0) return false;
return true;
}
int main(){
int l,r;
long long ans=0;
cin>>l>>r;
for(int i=l;i<=r;i++)if(isprime(i)) ans+=i;
cout<<ans<<endl;
return 0;
}