1131 统计素数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 22304 | 通过数 : 7230
题目描述
判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 )
输入要求
输入两个正整数k1和k2。
输出要求
输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。
输入样例
1 10
输出样例
4 2 3 5 7
提示
最后一个素数的后面直接换行,不需要再加空格。
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int a,b,i,j,d=0,k=0,p[1000],set=1;
scanf("%d%d",&a,&b);
if(a==1) a=2;
for(i=a;i<=b;i++){
d=0;
for(j=2;j<i;j++){
if(i%j==0) d++;
}
if(d==0) p[k++]=i;
}
printf("%d\n",k);
for(i=0;i<k;i++){
if(set){
printf("%d",p[i]);
set=0;
}
else printf(" %d",p[i]);
}
printf("\n");
return 0;
}
1132 最大公约数和最小公倍数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 9858 | 通过数 : 4702
题目描述
求两个正整数的最大公约数和最小公倍数。
输入要求
输入两个正整数。
输出要求
输出最大公约数与最小公倍数。
输入样例
10 15
输出样例
5 30
提示
输入的两数的大小顺序不定
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int a,b,t,i;
scanf("%d%d",&a,&b);
t=a;
if(b<a) t=b;
for(i=t;i>=1;i--){
if(a%i==0&&b%i==0) break;
}
printf("%d %d\n",i,a*b/i);
return 0;
}
1135 求矩形个数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 3165 | 通过数 : 2267
题目描述
有一个大的矩形由(M*N)个小的矩形组成。求一共有多少个矩形。
输入要求
输入两个整数,分别代表M,N (0 <= N,M < 100) 。
输出要求
输出矩形的个数。
输入样例
2 2
输出样例
9
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",(n*m*(n+1)*(m+1)/4));
return 0;
}
1136 蟠桃记
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 9056 | 通过数 : 5810
题目描述
喜欢西游记的同学都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题呢?他研究的问题是蟠桃一共有多少个?不过,到最后,他还是没能解决这个难题,呵呵^-^ ,你能帮他解决这个问题吗?
当时的情况是这样的:第一天悟空摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃了一个。第二天又将第一天剩下的桃子吃掉一半,又多吃了一个。以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候,发现只剩下一个桃子了。聪明的你,请帮悟空算一下,他第一天共摘了多少桃子?
输入要求
输入一个正整数n(1 < n < 30 ),表示只剩下一个桃子的事情是在第n天发生的。
输出要求
输出悟空第一天共摘了多少桃子。
输入样例
4
输出样例
22
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<n;i++){
s=(s+1)*2;
}
printf("%d\n",s);
return 0;
}
1137 搬砖问题
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 8261 | 通过数 : 3395
题目描述
某工地需要搬运砖块,已知男搬4,女搬3,两个小孩抬1块。现有N块砖和N个人,要求1次将所有砖搬完,请问需要男、女、小孩各几人?
输入要求
输入一个正整数N表示人数和需要搬的砖数。
输出要求
输出所有可能的男、女、小孩的人数。若无解则输出Error。
输入样例
36
输出样例
3 3 30
提示
来源
NBU OJ
代码:
#include<stdio.h> //C
int main(){
int n,b,g,x,set=1;
scanf("%d",&n);
for(b=0;4*b<=n;b++){
for(g=0;3*g<=n;g++){
x=n-b-g;
if(4*b+3*g+x/2.0==n){
printf("%d %d %d\n",b,g,x);
set=0;
}
}
}
if(set) printf("Error\n");
return 0;
}