c语言 要求 n为正整数,输入一个正整数N,要求满足题目条件

该博客主要介绍了一段C语言代码,用于读取一个正整数N,并进行因数分解,包括2, 3, 5, 7的因数计数。然后将这些因数写入一个数组,并进行因数合并,最终输出因数分解后的Q值。代码中包含错误输入判断和因数计数、写入、合并的逻辑处理。" 52045828,4947603,NVIDIA TK1开发板刷Ubuntu及配置指南,"['嵌入式开发', 'Linux', 'ROS系统', '开发板']
摘要由CSDN通过智能技术生成

#include

void main()

{

int n,bmp;

int a[30],i,j,k,t=1;

int num=0,num2=0,num3=0,num5=0,num7=0;

for (;;i++)

{

num=0;num2=0;num3=0;num5=0;num7=0;           //Òò×ÓÇåÁã

begin:

scanf("%d",&n);

if ( n>1000000000 || n<=0 )                      //´íÎóÊäÈëÅжÏ

{

printf("ERROR!ÖØÐÂÊäÈë!\n");

goto begin;

}

else if (n>0&&n<10)                              //һλÊýÅжÏ

{

printf("QµÄÊýֵΪ1%d!\n\n",n);

goto exit;

}

/*Òò×Ó²¶»ñ²¿·Ö*/

else if (n>=10)                                     //ÕýÈ·ÊäÈëÅжÏ

{

//²¶»ñÒò×Ó

for (;;i++)

{

if ( n%2==0 && n!=2 )

{num2+=1;n/=2;

}

else if ( n%3==0 && n!=3 )

{num3+=1;n/=3;

}

else if ( n%5==0 && n!=5 )

{num5+=1;n/=5;

}

else if ( n%7==0 && n!=7 )

{num7+=1;n/=7;

}

if (n==2)                                //²¶»ñÖÕÖµ

{num2+=1;break;

}

if (n==3)

{num3+=1;break;

}

if (n==5)

{num5+=1;break;

}

if (n==7)

{num7+=1;break;

}

if ( n%2!=0 &&

n%3!=0 &&

n%5!=0 &&

n%7!=0 )                            //Í˳öÅжÏ

{printf("ÎÞ½â!");goto exit;

}

}

}

//    printf("2=%d  3=%d  5=%d  7=%d\n",num2,num3,num5,num7);  ÑéÖ¤Òò×Ó²¶»ñÊÇ·ñ³ÉÁ¢!

/*Òò×ÓдÈ벿·Ö*/

for (i=0;i<30;i++) a[i]=1;                       //Êý×é³õʼ»¯

for (i=0;i

num+=num2;

for (i=num;i

num+=num3;

for (i=num;i

num+=num5;

for (i=num;i

//    for (i=0;i<30;i++) printf("%2d",a[i]);           // ÑéÖ¤Òò×ÓÊÇ·ñÕýȷдÈë

//    printf("\n\n");

//************************ÒÔÉÏ´úÂë¿éÔËÐе÷ÊÔÍê±Ï!************************//

/*Òò×Ӻϲ¢²¿·Ö*/

//Òò×Ӻϲ¢¿éµ÷ÊÔÖÐ......

for (k=0;k<30;k++)

{

if ((a[k]*a[k+1])<10)

{

a[k+1]=a[k+1]*a[k];

a[k]=1;

t++;

}

if ( (a[k]*a[k+1])>=10 && t>0 )

{

for (i=0;i<29;i++)

{

for (j=0;j<29-i;j++)

{

if (a[j]>a[j+1])

{

bmp=a[j];

a[j]=a[j+1];

a[j+1]=bmp;

}

else

continue;

}

}

}

}

//    for (i=0;i<30;i++) printf("%2d",a[i]);

//    printf("\n\n");

//ÁоÙÒò×Ó²¢Éú³ÉÊýÖµQ

printf("QµÄÊýֵΪ");

for (i=0;i<30;i++)

{

if (a[i]==1) continue;

printf("%d",a[i]);

}

printf("!\n\n");

}

exit:

printf("\n");

}

貌似论坛的代码不支持中文~     重新发一次~

6f83fddf9cb9ff6843fffd45e1807199.gif

to be or not to be

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值