1169: 例题5-9 判断素数
题目描述
输入一个大于1的正整数,判断它是否为素数(prime,又称质数)。
如果这个数是素数,则输出yes,否则输出no。
末尾输出换行。
输入
一个大于1的正整数
输出
根据输入数据,判断概述是否为素数。如果这个数是素数,则输出yes,否则输出no。
注意末尾输出换行。
样例输入 Copy
7
样例输出 Copy
yes
#include<stdio.h>
#include<math.h>
int main()
{
int a,b;
for(a=100;a<=200;a++)
{
for(b=2;b<a;b++)
if(a%b==0)
break;
if(b>sqrt(a))
{
printf("%d\n",a);
}
}
}
1171: 例题5-11 译密码
题目描述
为使电文保密,往往按照一定的规律将其转换成密码,收报人再按照约定的规律将其译成原文。例如,某次发报时采用的密码规律为:
将字母A变成字母E,a变成e,即变成其后的第4个字母,W(w)变成A(a),X(x)变成B(b), Y(y)变成C(c),Z(z)变成D(d),其规律如下图所示:
字母按照此规律转换,非字母字符保持原状不变,如:
China!按此规律将转换为Glmre!
要求从键盘输入一行字符,输出其相应的密码。
输入
可以包含空格等特殊符号的一行字符(以回车结束)。
输出
加密后的字符序列,末尾输出换行。
样例输入 Copy
China!
样例输出 Copy
Glmre!
#include<stdio.h>
int main()
{
char c[200];
int i;
gets(c);
for(i=0;c[i]!=0;i++)
{
if(c[i]>='A'&&c[i]<'W'||(c[i]>='a'&&c[i]<'w'))
{c[i]+=4;}
if((c[i]>='W'&&c[i]<='Z')||(c[i]>='w'&&c[i]<='z'))
{c[i]-=26;}
}
puts(c);
getchar();
}
1172-1173: 习题5-3-1 求最大公约数
输入
输入以空格分隔的2个正整数
输出
输出输入2数的最大公约数,末尾输出换行。
样例输入 Copy
14 49
样例输出 Copy
7
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
for(c=(a<b?a:b);c>1;c--)
if(a%c==0&&b%c==0)
{printf("%d\n",c);break;}
}
1174-1175: 习题5-3-3 最小公倍数
题目描述
输入两个正整数,求其最小公倍数。
输入
输入以空格分隔的两个正整数。
输出
输出此两数的最小公倍数,末尾输出换行。
样例输入 Copy
14 24
样例输出 Copy
168
#include<stdio.h>
int main()
{
int a,b,i;
scanf("%d%d",&a,&b);
for(i=2;i<=a*b;i++)
if(i%a==0&&i%b==0)break;
printf("%d\n",i);
return 0;
}
1176: 习题5-4 字符统计
题目描述
输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数,分行输出该结果。
输入
一行字符,可以包含字母、数字、空格、标点等符号
输出
分行输出大小写英文字母、空格、数字和其他字符的个数。
如:
characters=字母个数
spaces=空格个数
numbers=数字个数
others=其他字符个数
样例输入 Copy
My input123 @%chars.
样例输出 Copy
characters=12
spaces=2
numbers=3
others=3
#include<stdio.h>
int main()
{
int zimu=0,kengge=0,num=0,others=0;
char ch;
while((ch=getchar())!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
zimu++;
else
if(ch>='0'&&ch<='9')
num++;
else
if(ch==' ')
kengge++;
else
others++;
}
printf("characters=%d\nspaces=%d\nnumbers=%d\nothers=%d\n",zimu,kengge,num,others);
}
1177: 习题5-5 求和
题目描述
求a+aa+aaa+...+aa....a(n个a)的和,其中a是一个1~9之间的数字,由键盘输出,n表示a的位数,由键盘输出。
如:
2+22+222+2222+22222
此时a=2,n=5.
输入
输出a和n的值,以空格分隔。
输出
输出a+aa+aaa+...+aa....a(n个a)的和,末尾换行。
样例输入 Copy
2 5
样例输出 Copy
24690
#include<stdio.h>
int main()
{
double a,i,j,s,n;
scanf("%lf%lf",&a,&n);
for(i=1,j=1,s=0;n-i>=0;i++,j=j*10+1)
{
s+=j;
} s*=a;
printf("%.0lf\n",s);
}
1179: 习题5-6-1 连续阶乘求和
题目描述
输入一个正整数N,求1!+2!+3!+...+N!,即求
提示:由于>10的整数的阶乘非常大,已超出整数的表示范围,故求阶乘时,需要将变量定义为double类型。
输入
输入一个正整数N
输出
1~N连续阶乘的和,1!+2!+3!+...+N!的和,末尾换行。
样例输入 Copy
10
样例输出 Copy
4037913
#include<stdio.h>
int main()
{
double n,i,t=1,s=0.0;
scanf("%lf",&n);
for(i=1;i<=n;i++)
{
t*=i;
s+=t;
}
printf("%.0lf",s);
return 0;
}