1.找出整型数字1-100之间的素数,并打印出来。
#include <stdio.h>
int main(void)
{
int i,j;//i为0-100之间的数,j<=i
printf("0-100之间的素数:\n");
for(i=2;i<100;i++){
for(j=2;j<i;j++){//试找出在所有小于i的数中有没有能被i整除的
if(i%j==0)
break;
}
if(j>=i)
printf("%d ",i);
}
return 0;
}
运行结果:
2.有两个整形变量m,n,求出这两个数的最小公倍数。
两个数(a,b)最小公倍数=a*b/它们的最大公约数。
所以求最小公倍数的问题就转化为求最大公约数了。
#include <stdio.h>
int main()
{
int m,n,a,b,y;/*y是余数*/
printf("输入两个数:");
scanf("%d %d",&m,&n);
a=m;
b=n;
y=a%b;
while(y!=0){/*辗转相除*/
a=b;
b=y;/*若m<n,这里执行第一次后a和b的值会交换*/
y=a%b;
}
printf("%d 和 %d的最小公倍数是:%d\n",m,n,m*n/b);
return 0;
}
运行结果:
3.输出杨辉三角的前十行。
杨辉三角,是二项式系数在三角形中的一种几何排列。三角形的每一行是(x+y)^n的展开是的各项系数。
#include <stdio.h>
int main()
{
int i,j;//i为行数
int s=1,h=10;//h代表的是杨辉三角的高度,可以自行定义改变
printf("1\n");//第一行的1直接输出
for(i=2;i<=h;s=1,i++){
printf("1 ");//每行的第一个1
for(j=1;j<=i-2;j++)//i-2是除去第一个1和最后一个1之后剩下的数的个数,来限制j循环的次数
printf("%d ",(s=(i-j)*s/j));
printf("1\n");//每行的最后一个1
}
return 0;
}
运行结果: