① c語言質因數分解題目怎麼做
#include<stdio.h>
#include<math.h>
int main() {
long long n,i,j,k;
while(~scanf("%ld",&n)) {
k=1;
for(i=2; i<=sqrt(n); i++) {
j=0;
if(n%i==0) {
if(k)k=0;
else printf("*");
printf("%ld",i);
while(n%i==0) {
j++;
n/=i;
}
if(j>1)printf("^%ld",j);
}
}
if(n>1)
if(k)printf("%ld",n);
else printf("*%ld",n);
printf("\n");
}
return 0;
}
② 怎麼用C語言將一個正整數分解質因數.例如,輸入90,輸出90=2*3*3*5
#include "stdio.h"
void main()
{int m,i,j=0;
printf("please input the number:\n");
scanf("%d",&m);
for(i=2;i<=m;i++)
{while(m%i==0)
{j++;
if(j==1) printf("%d=%d",m,i);
else printf("*%d",i);
m=m/i;
}
}
}
沒有用中文,怕你用的是TC,那就會出現亂碼,這程序關鍵在於尋找質因數和輸出格式的控制。
③ C語言經典演算法:如何較快的分解質因數
將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。初級演算法:#include
#include
#include
int
main()
{
int
n,i;
scanf("%d",&n);
printf("%d=",n);
for(i=2;i
④ C語言分解質因數
這樣注釋的已經很好了啊
if(m%k!=0),說明還沒找到因數,每次都是從2開始,逐漸遞增,來找因數的
else,else部分,說明已經找到了因數,找到因數以後,先把因數列印出來,然後讓m等於被除後的數,讓k=2,也就是從2開始,繼續遞增找其他的因數啊
舉個例子,你就明白了,比如15,你要對它進行分解質因數,該怎麼做呢
先讓k=2,發現15%2!=0了,說明2不是它的因數,讓k++
k=3的時候,發現15%3==0了,說明3是它的一個因數,列印出3,讓m=15/3=5,讓k=2
5%2!=0,5%3!=0,5%4!=0,說明2,3,4,都不是5的因數,k繼續自加
k=5,5%5==0了,說明5是5的因數,所以,列印5,m=5/5=1,k=2,這時,就會退出for循環了
逐行分析,見下面:
if(m%k!=0) //m不能被k整除,說明k不是m的因數
{
k++; //就讓k自加1,判斷下一個數是不是m的因數
}
else //m不能被k整除,說明k是m的一個因數
{
printf("%d*",k); //把這個因數k,列印出去
m=m/k; //從m中把因數k去掉,如果不去掉,下一個又會找到因數k的,那樣就不對了
k=2;//讓k重新等於2,也就是重新從2開始找m的因數
}
⑤ 利用函數給指定區間[m,n]正整數分解質因數c語言, 調用函數!
#include
int factorsum(int n)
{
int i,sum=0;
for(i=1;i<n;i++)
{
if(n%i==0)
sum+=i;
}
return sum;
}
int main()
{
int n,m,i,flag;
while(scanf("%d%d",&m,&n)!=EOF)
{
flag =1;
for(i=m;i<=n;i++)
{
if(i==factorsum(i))
{
if(flag)
{
printf("%d",i);
flag=0;
}
else
{
printf(" %d",i);
}
}
}
printf("\n");
}
return 0;
}
⑥ c語言如何將一個正整數分解成質因數
#include<stdio.h>
voidmain()
{
inta,n;
scanf("%d",&n);
printf("n=");
for(a=2;a<=n;a++)
if(n%a==0)
{n/=a;
printf("%d",a);
printf("*");
a=1;}
}
輸入編碼即可。