题目
输入一个正整数,编写程序实现以下功能:
1)统计该整数的位数,并求各位数字之和,例如输入127,输出位数为3,和为10;
2)从高位开始逐位分割并输出它的各位数字例如,输入127,则输出结果为1 2 7
3)判断该数是否为素数,例如输入127,输出127是素数;
代码
大一编码入门的时候写的。希望能帮到读者。
完整代码:
https://github.com/Susie2000/C/blob/master/IntgerOperats
/*输入一个正整数,统计并输出其位数,求各位数之和,从高位开始逐位分割,并判断其是否为素数*/
#include<stdio.h>
#include<math.h>
int main()
{
int x,num,i=10,j,num1,num2,count=0,a1,a2,a3,a4,fac=0,flag=0,r,p=0;//x为输入的数
printf("请输入一个正整数:");
scanf("%d",&x);
num1=x;//保留输入的数以便后面使用
do
{
count++;
j=x%i;
i=i*10;
} while(j!=x);//计算其位数
printf("其位数为:%d\n",count);//输出位数
do//计算各位数之和
{
a1=x%10;//取出最低位
fac=fac+a1;//fac即各位数之和
x=x/10;
}while(x!=0);
printf("其各位数之和为:%d\n",fac);//输出各位数之和
count=count-1;//开始第2题
}