作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入
ubuntu@ubuntu:~/zy3$ ./a.out
请输入起始值与终止值:0 15
3 5 6 9 10 12
ubuntu@ubuntu:~/zy3$ cat 1.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=0;//始
int b=0;//终
printf("请输入起始值与终止值:");
scanf("%d%d",&a,&b);
for(a=a+1;a<b;a++)//遍历始与终之间的数
{
if(a%3==0||a%5==0)//判断能否被3或5整除
{
printf("%d\t",a);
}
continue;
}
printf("\n");
return 0;
}
作业2:输出斐波那契前20项的值
斐波那契数列:1 1 2 3 5 8 13 。。。
ubuntu@ubuntu:~/zy3$ gcc 2.c
ubuntu@ubuntu:~/zy3$ ./a.out
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
ubuntu@ubuntu:~/zy3$ cat 2.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=1;//后值
int b=0;//前值
int c=0;//用于前后值转换
int i=1;
for(a=1;i<=20;i++)//限定前二十项
{
if(i==1)
{
printf("%d\t",i);//输出第一个前值
continue;
}
c=a; //存放后值
a=a+b; //新后值
b=c; //旧后值转新前值
printf("%d\t",a);
}
printf("\n");
return 0;
}
作业3:输入一个数,判断该数是否为素数(只能被1和其本身整除的数)
ubuntu@ubuntu:~/zy3$ ./a.out
请输入一个整数:1
不是素数
ubuntu@ubuntu:~/zy3$ ./a.out
请输入一个整数:2
是素数
ubuntu@ubuntu:~/zy3$ ./a.out
请输入一个整数:8
不是素数
ubuntu@ubuntu:~/zy3$ cat 3.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=0;
int b=0;
printf("请输入一个整数:");
scanf("%d",&a);
if(a==1){ //将1定为不是素数
printf ("不是素数\n");
}
for(b=2;b<a;b++) //判断是否有除数本身和1之外的因数
{
if(a%b==0){
printf("不是素数\n");
break;
}
}
if(a==b&&a!=1){ //判断是否为素数
printf("是素数\n");
}
return 0;
}
作业4:输入一个数,判断该数是否为完美数(所有真因子之和等于其本身,例如:6 = 1+2+3)
ubuntu@ubuntu:~/zy3$ ./a.out
请输入一个整数:6
是完美数
ubuntu@ubuntu:~/zy3$ ./a.out
请输入一个整数:1
不是完美数
ubuntu@ubuntu:~/zy3$ ./a.out
请输入一个整数:28
是完美数
ubuntu@ubuntu:~/zy3$ cat 4.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=0;
int b=0;
int h=0;//真因数之和
printf("请输入一个整数:");
scanf("%d",&a);
for(b=1;b<a;b++)
{
if(a%b==0){
h+=b;
}//找出该数的真因数并求其和
}
if(a==h&&a!=0){
printf("是完美数\n");
}else{
printf("不是完美数\n");
}
return 0;
}
作业5:输出起始值到终止值之间所有的素数
ubuntu@ubuntu:~/zy3$ gcc 5.c
ubuntu@ubuntu:~/zy3$ ./a.out
请输入起始值和终止值:0 20
2 3 5 7 11 13 17 19
ubuntu@ubuntu:~/zy3$ cat 5.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=0;//始值
int b=0;//终值
int c=0;
printf("请输入起始值和终止值:");
scanf("%d%d",&a,&b);
for(a=a+1;a<b;a++)//遍历始与终之间的数
{
if(a<=1){//将0,1定为不是素数
continue;
}
for(c=2;c<a;c++)//判定该数是否有除本身和1外的因数,有就退出本层循环
{
if(a%c==0){
break;
}
}
if(a==c){ //判定是否为素数
printf("%d\t",a);
}
}
printf("\n");
return 0;
}
作业6:输出起始值到终止值之间所有的完美数
ubuntu@ubuntu:~/zy3$ cat 6.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=0;//起始值
int b=0;//终止值
int c=1;//真因数
int h=0;//真因数之和
printf("请输入起始值和终止值:");
scanf("%d%d",&a,&b);
for(a=a+1;a<b;a++)//遍历始与终之间的数
{
for(c=1;c<a;c++)
{
if(a%c==0){ //判定是否为真因数
h+=c;
}
}
if(a==h){ //判定是否为真因数
printf("%d\t",a); //输出完美数
}
h=0; //将上个数的真因数之数归零
}
printf("\n");
return 0;
}