证明素数:
例5.9 有一个整数m,判断它是否素数。
解题思路:
所谓素数(或称质数)是指除了1和它本身以外,不能被任何整数整除的数
例如17是素数,因为它不能被2到16间任一整数整除
因此判断一个整数m是否素数,只需把m被2到m-1之间的每一个整数去除,如果都不能被整除,那末m就是一个素数
#include <stdio.h>
#include <math.h>
void main()
{int m,i,k;
printf(“number:"); scanf(“%d”,&m);
k=(int)sqrt(m);
for (i=2;i<=k;i++)
if(m%i==0) break;
if(i>k) printf("%d prime\n",m);
else printf("%d not prime\n",m);
}
运行结果:
number: 17↙
17 prime
译码器程序
例5.10 译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。
A B C D E F G …… W X Y Z
非字母字符保持原状不变
输入一行字符,要求输出其相应的密码
解题思路:
(1) 从字母A到V,只需将字母加上4就行
例如,’A’+4就是’E’
(2) 从字母W到Z,将字母加4,再减去26
’W’+4-26就是’A’
解题思路:
输入一个字符给字符变量c
判定它是否字母(包括大小写),若不是字母,不改变c的值;若是字母,则使变量c的值改变为其后第4个字母
如果新的c值范围不在字母范围内,应减去26
#include <stdio.h>
void main()
{ char c;
while((c=getchar())!=‘\n’)
{ if((c>=‘a’ && c<=‘z’) ||
(c>=‘A’ && c<=‘Z’))
{ c=c+4;
if(c>‘Z’ && c<=‘Z’+4 || c>‘z’)
c=c-26;
}
printf("%c",c);
}
}
运行结果:
China!↙
Glmre!
http://www.edu399.com/
详细内容可下载幻灯片细看:
http://www.edu399.com/kejian/C/C.rar