作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入
ubuntu@ubuntu:~$ cat day5lianxi.c
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a,b;
printf("输入的起始值: ");
scanf("%d",&a);
printf("输入的终止值: ");
scanf("%d",&b);
for(int i=a;i<=b;i++)
{
if(i%3==0||i%5==0)
{
printf("%d\n",i);
}
}
return 0;
}
ubuntu@ubuntu:~$ vi day5lianxi.c
ubuntu@ubuntu:~$ gcc day5lianxi.c
ubuntu@ubuntu:~$ ./a.out
输入的起始值: 56
输入的终止值: 78
57
60
63
65
66
69
70
72
75
78
作业2:输出斐波那契前20项的值
斐波那契数列:1 1 2 3 5 8 13 。。。
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=1,b=1;
for(int i=1;i<=20;i++)
{
printf("%d ",a);
int tmp=a+b;
a=b;
b=tmp;
}
printf("\n");
return 0;
}
buntu@ubuntu:~$ vi day5lianxi2.c
ubuntu@ubuntu:~$ gcc day5lianxi2.c
ubuntu@ubuntu:~$ ./a.out
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
作业3:输入一个数,判断该数是否为素数(只能被1和其本身整除的数)
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int i,a;
printf("输入数: ");
scanf("%d",&a);
for(i=2;i<=a-1;i++) //遍历[2,a-1]判断a%i是否为0直接break
{
if(a%i==0)
{
printf("%d不是素数",a);
break;
}
}
if(i==a)
{
printf("%d是素数",a);
}
printf("\n");
return 0;
}
buntu@ubuntu:~$ vi day5lianxi3.c
ubuntu@ubuntu:~$ gcc day5lianxi3.c
ubuntu@ubuntu:~$ ./a.out
输入数: 45
45不是素数
ubuntu@ubuntu:~$ ./a.out
输入数: 28
28不是素数
作业4:输入一个数,判断该数是否为完美数(所有真因子之和等于其本身,例如:6 = 1+2+3)
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int num,sum=0;
printf("输入一个数: ");
scanf("%d",&num);
for(int i=1;i<num;i++)
{
if(num%i==0)
{
sum+=i;
}
}
if(num==sum)
{
printf("%d是完美数\n",num);
}
else
{
printf("%d不是完美数\n",num);
}
return 0;
}
ubuntu@ubuntu:~$ vi day5lianxi4.c
ubuntu@ubuntu:~$ gcc day5lianxi4.c
ubuntu@ubuntu:~$ ./a.out
输入一个数: 6
6是完美数
作业5:输出起始值到终止值之间所有的素数
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a=0,b=0;
printf("输入起始值和终止值: ");
scanf("%d%d",&a,&b);
for(a;a<=b;a++)//a自增
{
int flag=0;
for(int i=2;i<a;i++) //i小于a a%i才有余数
{
if(a%i==0)
{
flag++;
}
}
if(flag==0&&a>1)
{
printf("%d是素数\n",a);
}
}
return 0;
}
输入起始值和终止值: 23 56
23是素数
29是素数
31是素数
37是素数
41是素数
43是素数
47是素数
53是素数
作业6:输出起始值到终止值之间所有的完美数。
#include <stdio.h>
int main(int argc, char * argv[])
{
// 输出起始值到终止值之间所有的完美数
int start, end;
printf("请输入起始值:");
scanf("%d", &start);
printf("请输入终止值:");
scanf("%d", &end);
for (int num = start; num <= end; num++) {
int sum = 0;
for (int i = 1; i < num; i++)
if (num % i == 0)
sum += i;
if (sum == num) printf("%d\n", num);
}
}
ubuntu@ubuntu:~$ ./a.out
请输入起始值:2
请输入终止值:567
6
28
496