拼数字

拼数字

问题描述
对于给定的字符序列(字符序列长度小于100),从左至右将所有数字字符取出拼接成一个无符号整数(拼接出的整数小于2^31)。
然后计算并输出该整数的最大因子(如果是素数或0,则其最大因子为自身)。

输入说明
输入数据为一行字符序列。

输出说明
对输入的字符序列,求出所得整数的最大因子;若字符序列中没有数字或找出的整数为0,则输出0。

输入样例
样例1输入

sdf0ejg3.f?9f

样例2输入

?4afd0s&2d79*(g

样例3输入

abcde

输出样例
样例1输出

13

样例2输出

857

样例3输出

0

#include<stdio.h>
#include<string.h>
#include<math.h> 
int main()
{
/**************************函数参数********************************************
*rec[100]:	接受字符串数组
*tra[100]:	发送字符串数组 
*xlong:	   测量数组宽度 
*count:		计数值 
*num:		转化下来的值 
*******************************************************************************/
	char rec[100],tra[100];
	int xlong,count,num;
	count=0;
	num=0;
	gets(rec);
	xlong=strlen(rec);
	
	for(int i=0;i<xlong;i++)//交换数组 
	if(rec[i]<='9'&&rec[i]>='0')
	{
		tra[count]=rec[i];
		count++;
	 } 
	tra[count]='\0' ;
/*将字符转化为数字*/ 
 	xlong=strlen(tra);
 	if(count!=0) 
 	for(int i=0;i<xlong;i++)
 	{
 		num=num+(tra[i]-48)*pow(10,xlong-i-1);
	 }
/*找出最大因数*/ 
	if(num>1)
	for(int i=num-1;i>0;i--)
	{
		if(i==1)
		{
			printf("%d",num);
			break;
		}
		else if((num/i)*i==num)
		{
			printf("%d",i);
			break;
		}
	}
	else//	num=0||1;
	printf("%d",num);
	
	return 0;
}
@ RoboMaster!十兮
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页