while(n!=1)
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了開(kāi)平免費(fèi)建站歡迎大家使用!
當(dāng)N不等于1的時(shí)候循環(huán)~但是printf("%i\n",n); 這句還是執(zhí)行了
有求,那我就來(lái)了.
首先把i=n的等于號(hào)去掉,改為in就好(樓下說(shuō)的)
然后補(bǔ)充:最后一個(gè)printf就不要了,那么1就不顯示出來(lái)了.還是有點(diǎn)地方要改~改好的如下:
#include stdio.h
main()
{
int n,i;
printf("Enter an integer (2-2147483647):");
scanf("%d",n);
printf("%d=",n);
for(i=2;i=n;i++)
{
while(n!=1)
{
if( n%i==0)
{
printf("%i",i);
n=n/i;
}
else
break;
if(n!=1)/*當(dāng)n=1時(shí)就不顯示"*"號(hào),如果沒(méi)這句,你可以看看會(huì)出現(xiàn)什么*/
printf("*");
else
;
}
}
}
#includestdio.h
int?main()
{
int?i,?j,?a[999999],?x,?y;
scanf("%d",?x);???//讀取
y?=?x;
for(i?=?2,?j?=?0;?i?=?x;?i++)??//遍歷質(zhì)因數(shù)
{
if(x?%?i?==?0)????//如果讀取的數(shù)能夠被質(zhì)因數(shù)整除
{
a[j]?=?i;???//將符合條件的質(zhì)因數(shù)存到數(shù)組中
j++;????????//數(shù)組下標(biāo)遞增
x?/=?i;?????//重新賦值
i?=?2;??????//重新遍歷
}
}
printf("%d=%d",?y,?a[0]);????//輸出原數(shù)、等號(hào)、第一個(gè)質(zhì)因數(shù)
for(i?=?1;?i??j;?i++)
printf("×%d",?a[i]);???//如果存在第二個(gè)質(zhì)因數(shù),則繼續(xù)輸出
return?0;
}
按照題目要求編寫(xiě)的數(shù)組中的質(zhì)因數(shù)的C語(yǔ)言程序如下
#include?stdio.h
void?f(){
int?n,a[100],count=0,k;
scanf("%d",n);
for?(k=2;kn;k++)
{
if(n%k==0)
{
a[count]=k;
count++;
n=n/k;
k--;
}
}
a[count]=n;
for(k=0;k=count;k++)
{
printf("%d\n",a[k]);
}
}
int?main(){
f();
return?0;
}
求出區(qū)間[a,b]中所有整數(shù)的質(zhì)因數(shù)分解。
輸入
輸入兩個(gè)整數(shù)a,b。
輸出
每行輸出一個(gè)數(shù)的分解,形如k=a1*a2*a3...(a1=a2=a3...,k也是從小到大的)(具體可看樣例)。
樣例輸入
3 10
樣例輸出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
藍(lán)橋杯
#includestdio.h
#includemath.h
int factor(int n)
{
int i,j=(int)sqrt(n);
if(n%2==0) return 2;
for(i=3;i=j;i++)
if(n%i==0) return i;
return n;
}
int main()
{
int i, j, k, m, n;
scanf("%d%d", m, n);
for(i=m;i=n;i++)
{
j=factor(i);
k=i/j;
printf("%d=%d",i,j);
while(k1)
{
j=factor(k);
k=k/j;
printf("*%d", j);
}
printf("\n");
}
return 0;
}
分解質(zhì)因數(shù)牛逼方法