本题目要求读入3个整数A和B和C(设用户输入保证10<=A<B<C<=50)。如果C是A和B的公倍数,则输出闭区间[A,C]范围内的所有素数并求平均值。如果C不是A和B的公倍数,则将B的各位数字逆序输出。
输入格式:
在一行中给出3个整数,空格隔开。
输出格式:
如样例,英文符号隔开数据,无多余空格。平均值取两位小数。
输入样例:
10 25 50
输出样例:
11,13,17,19,23,29,31,37,41,43,47,ave=28.27
输入样例:
10 24 40
输出样例:
42
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h>
#include<math.h>
#include<string.h>
int is(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
int a,b,c;
int sum=0,count=0;
double avg;
scanf("%d %d %d",&a,&b,&c);
if(c%a==0 && c%b==0)
{
for(int i=a;i<=c;i++)
{
if(is(i)==1)
{
printf("%d,",i);
sum+=i;
count++;
}
}
avg=(sum*1.0)/count;
printf("ave=%.2lf",avg);
}
else
{
char str[100];
sprintf(str, "%d", b);
int len=strlen(str);
for(int i=len-1;i>=0;i--)
{
printf("%c",str[i]);
}
}
return 0;
}