作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入
运行结果
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int m = 0; //定义初始值
int n = 0; //定义终止值
int num = 0;
printf("起始值:");
scanf("%d",&m);
printf("终止值:");
scanf("%d",&n);
num = m; //把初始值赋给遍历起点
for(num=m;num<=n;num++){
if(num%3==0||num%5==0){ //判断条件
printf("%d\t",num);
}
}
printf("\n");
return 0;
}
作业2:输出斐波那契前20项的值
运行结果
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int s[20]={1,1}; //不完全初始化数组
int i = 0;
for(i=2;i<20;i++){ //给数组循环赋值
s[i]=s[i-1]+s[i-2];
}
for(i=0;i<20;i++){ //遍历打印数组
printf("%d ",s[i]);
}
printf("\n");
return 0;
}
作业3:输入一个数,判断该数是否为素数(只能被1和其本身整除的数)
运行结果
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int m = 0;
printf("输入:");
scanf("%d",&m);
int i = 2;
for(i=2;i<m;i++){ //2是素数排除在外
if(m%i==0){ //遍历小于他的所有数
printf("%d不是个素数\n",m);
break; //如果有数能整除他直接跳出循环
}
}
if(m==i){ //还有一种可能是遍历完才跳出循环,此时m=i,此时为素数
printf("%d是个素数\n",m);
}
return 0;
}
作业4:输入—个数,判断该数是否为完美数
运行结果
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int m = 0; //初始化
printf("输入:");
scanf("%d",&m);
int i = 1; //除数不能为0
int sum = 0;
for(i=1;i<m;i++){ //遍历
if(m%i==0){ //如果是因子
sum=sum+i; //相加
}
}
if(sum==m){ //判断sum是否与输入相等
printf("%d是完美数\n",m);
}else{
printf("%d不是完美数\n",m);
}
return 0;
}
作业5:输出起始值到终止值之间所有的素数
运行结果
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int m = 0;
int n = 0;
printf("初始值:");
scanf("%d",&m);
printf("终止值:"); //输入初始值与终止值
scanf("%d",&n);
int i = 2; //将2这个素数排除
int num = m;
for(num=m;num<n;num++){ //遍历初始值与终止值
for(i=2;i<num;i++){ //遍历小于数的因子
if(num%i==0){ //判断是否能被整除
break; //一旦能被整除说明不是素数跳出本层for循环
}
}
if(num==i){ //判断是因为相等才跳出循环,为素数
printf("%d ",num);
}
}
printf("\n");
return 0;
}
作业6:输出起始值到终止值之间所有的完美数
运行结果
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int m = 0;
int n = 0;
printf("初始值:");
scanf("%d",&m);
printf("终止值:");
scanf("%d",&n); //初始化初始值和终止值
int i = 1;
int num = m;
for(num=m;num<=n;num++){ //遍历初始值和终止值的所有数
int sum = 0; //每次遍历前给sum清零
for(i=1;i<num;i++){ //遍历所有num的因子
if(num%i==0){
sum=sum+i; //求出因子的和
}
}
if(sum==num){ //判断因子和和数是否相等,是否为完美数
printf("%d ",num);
}
}
printf("\n");
return 0;
}