完美数:除本身约数和等于本身
eg:6:1 2 3 1+2+3==6
#include
int main(int argc, const char *argv[])
{
int i,num,sum=0;//定义三个变量
printf("please enter a number:");//提示输入一个数
scanf("%d",&num);//输入数
for(i=1;i
效果图:
#include
#include //使用sqrt,引入math.h的头文件
int main(int argc, const char *argv[])
{
int i,num,count=0;//定义三个变量
printf("please a number:");//提示输入
scanf("%d",&num);//输入一个num
for(i=2;i<=sqrt(num);i++)//遍历2-根号下num
{
if(num%i==0)//记录num因子的个数
{
count++;
}
}
if(count==0&&num!=1)//当count的个数为0,说明num没有除了1和自身没有其他因子,为素数;注意:1除外
{
printf("num=%d 是素数\n",num);//条件成输出是素数
}else{
printf("num=%d 不是素数\n",num);//反之输出不是素数
}
return 0;
}
#include
int main(int argc, const char *argv[])
{
int i,j;//定义两个循环变量
for(i=1;i<=4;i++)//外层控制行
{
for(j=1;j<=i;j++)//内层控制列
{
printf("*");//循环打印 *
}
printf("\n");
}
return 0;
}
效果图:
#include
int main(int argc, const char *argv[])
{
int i,j,n;//定义循环变量以及打印的行数
printf("please enter n:");//提示输入
scanf("%d",&n);//输入要打印的行数
for(i=1;i<=n;i++)//外层控制行
{
for(j=1;j<=n+1-i;j++)//内层控制列
{
printf("*");//循环打印 *
}
printf("\n");
}
return 0;
}
效果图:
#include
int main(int argc, const char *argv[])
{
int i,j,n;//定义两个循环变量以及一个变量n用来存储行数
printf("please enter n:");//提示输入行数
scanf("%d",&n);//输入要打印的行数
for(i=1;i<=n;i++)//外层控制行
{
for(j=1;j<=n+1-i;j++)//内层控制列
{
printf(" ");//先循环打印空格
}
for(j=1;j<=i;j++)
{
printf("*");//再循环打印 *
}
printf("\n");
}
return 0;
}
效果图:
#include
int main(int argc, const char *argv[])
{
int i,j,n;//定义两个循环变量以及一个变量n用来存储行数
printf("please enter n:");//提示输入行数
scanf("%d",&n);//输入要打印的行数
for(i=1;i<=n;i++)//外层控制行
{
for(j=1;j<=i;j++)//内层控制列
{
printf(" ");//先循环打印空格
}
for(j=1;j<=n+1-i;j++)
{
printf("*");//再循环打印 *
}
printf("\n");
}
return 0;
}
效果图:
#include
int main(int argc, const char *argv[])
{
int x,y,z;//定义三个变量存储公鸡、母鸡和小鸡的个数
for(x=0;x<=20;x++)//公鸡数量最小为0只,最大为20只
{
for(y=0;y<=33;y++)//母鸡数量最小为0只,最大为33只
{
for(z=0;z<=100;z++)//小鸡数量最小为0只,最大为100只
{
if(x*5+y*3+z/3==100 && x+y+z==100 && z%3==0)//百钱买百鸡,则三种鸡的数量加起来为一百只并且一共有一百元,且小鸡一钱三只
{
printf("x=%d y=%d z=%d\n",x,y,z);//穷举出符合上面表达式的所有情况
}
}
}
}
return 0;
}
效果图:
#include
int main(int argc, const char *argv[])
{
int i,value;//定义循环变量i,value用来存储num的初始值
int num;//定义num存储输入的数
int sum=0;//定义sum存储num的倒序
printf("plaese enter a number:");//提示输入num
scanf("%d",&num);//输入num的值
value=num;//存储num的初始值
while(num!=0)//循环
{
sum=sum*10+num%10;//用来计算num各个位的倒序的值
num/=10;//将num循环对10取商,以便于下次取余
}
if(sum==value){//判断num各个位倒序之后与num初始值是否相等
printf("num=%d 是回文数\n",value);//相等是回文数
}else{
printf("num=%d 不是回文数\n",value);//反之则不是
}
return 0;
}
效果图:
#include
int main(int argc, const char *argv[])
{
int i,num;//定义循环变量i,num用来存储输入的数
int sum=0;//定义一个sum用来存储num各个位的和
printf("please enter a number:");//提示输入num
scanf("%d",&num); //输入num的值
while(num!=0)//
{
sum+=num%10;//循环取出num各个位的数并求和
num/=10;
}
printf("sum=%d\n",sum);//打印出sum的值
return 0;
}
效果图:
思维导图: