求C语言程序:从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m以质因数从小到大顺序排

作者&投稿:堵嵇 (若有异议请与网页底部的电邮联系)
急求c语言编程:从键盘任意输入一个整数m,若m不是素数,则计算并输出其所有的因子(不包括1),例如对于~

我这个效率最高,最直观
#include #include void main(){_开始: printf("请输入待分析的正整数
"); int n待分析; scanf("%d", &n待分析); if(n待分析 < 0) goto _开始; int n因子上限 = (int) sqrt((double)n待分析); int n因子个数 = 0; for(int i = 2; i <= n因子上限; ++i) { int n另一个因子 = n待分析 / i; if(n待分析 == n另一个因子 * i) { printf(" (%d, %d) ", i, n另一个因子); ++n因子个数; } } printf("
"); if(n因子个数 == 0) printf("No divisor! It is a prime number
"); goto _开始;}程序执行
请输入待分析的正整数16 (2, 8) (4, 4)请输入待分析的正整数256 (2, 128) (4, 64) (8, 32) (16, 16)请输入待分析的正整数1024 (2, 512) (4, 256) (8, 128) (16, 64) (32, 32)请输入待分析的正整数255 (3, 85) (5, 51) (15, 17)请输入待分析的正整数小力庭 2013-4-20 欢迎到我微博上交流
weibo.com/litingsoft

#include int IsPrime(int n){int i,k=1;for(i=2;in/2&&n>1) k=0;return k;}void main(){int i=2,n;scanf("%d",&n);if(IsPrime(n)){printf("%d=",n);while(i<n){if(n%i==0){printf("%d*",i);n/=i;}else i++;}printf("%d",n);}else printf("It is a prime number");}

已通过测试,望采纳
#include <stdio.h>
int judge(int n)
{ int f=1;
int i;
for(i=2;i<n;i++)
if(n%i==0)
{ f=0;
break;
}
return f;
}
main()
{ int m;
int a[30];
int flag,i,j=0,t;
printf("Input a number:");
scanf("%d",&m);
flag=judge(m);
if(flag==1)
printf("The number %d is a prime number!",m);
else
{ t=m;
for(i=2;i<=t;i++)
if(judge(i))
while(t%i==0)
{ a[j]=i;
j++;
t/=i;
}
printf("%d =",m);
for(i=0;i<j-1;i++)
printf(" %d *",a[i]);
printf(" %d\n",a[i]);
}
}

这个简单,书上就有。


C语言:编写程序从键盘输入不定数量的正整数?
不考虑数据的存储,直接循环累计即可。想要数据存储:方法一:定义一个非常大的数组,循环输入并检测输入值,累计求平均。方法二:动态数组,根据有效输入,实时扩展数组地址长度。方法三:把每个数字创建成结构体,构建链表,实现自由扩展和删除。下面我的代码是用方法二写的:include <stdio.h> include <...

C语言编写一个程序,实现如下功能:从键盘输入一个三位数,求各位数字之...
include "stdio.h"void main(){ int n,sum=0;printf("请输入一个三位数:");scanf("%d",&n);sum=n\/100+n%100\/10+n%10;\/\/百位数+十位数+个位数 printf("这个三位数各位数字之和是%d\\n",sum);} 结果:

c语言编写程序,从键盘输入6名学生5门功课成绩,分别统计出每个学生的平...
一、问题分析 需要保存6名学生5门功课的成绩,需要设计一个6行5列大小的二维数组scores[6][5]来存储30个成绩数据。保存6名学生的平均成绩,需要设计一个6列大小的一维数组来avgs[6]存储平均成绩。为使程序具有更好的通用性,使用宏定义定义学生人数M和课程门数N。计算每个学生的平均成绩时,累加该...

c语言实现从键盘上输入10个数,并输出。
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:include<stdio.h> int main(){ int i,j,a[10],t;printf("输入数");for (i = 0; i < 10; i++)scanf("%d",&a[i]);for (i = 0; i < 10; i++){ for (j = i + 1; j < 10;j...

c语言程序:要求反复从键盘上输入一个字符,对字母进行大小写转换;若输入...
include<stdio.h> include<string.h> include<ctype.h> int main(){char a,b;int i=0,j=0;do { a=getchar();if(a=='\\n')break;b=getchar();if(isalpha(a)!=0)i++;else {printf("错误!输入的不是字母!\\n");j++;continue;} if(a>=97)printf("%c的大写字母是%c\\n",a...

C语言程序设计,从键盘输入任意两个正整数M和N,求M!+N! . 输出100到200...
include<stdio.h>int prime(int n){for(int i=2; i*i<=n;i++) if(n%i==0)return 0; return n>1;}int main(){int i,k=0; for(i=101; i<200;i+=2) if(prime(i)) {printf("%5d",i); if(++k%8==0)printf("\\n"); } return 0; } ...

用C语言编写程序:从键盘输入一串字符,按回车键后结束,最后将字符串在屏...
include<stdio.h> void main(){ char *p[20];printf("\\n Please input some chars:");scanf("%s",p);printf("\\n You inputed: %s\\n",p);getchar();} 注意,该程序最多可输入20个字符,如果要更多,自己把*p[20];里的数字改得列大就行了 ...

c语言题目:写出程序 要求从键盘上输入一个十到十万之间的整数,将其最...
include <stdio.h>int main(void){ int n,t,f; printf("Input n(int 9<n<100001)...\\nn="); if(scanf("%d",&n)!=1 || n<10 || n>100000){ printf("Input error, exit...\\n"); return 0; } for(t=n,f=1;t>9;f*=10,t\/=10); printf("T...

用C语言编写一完整源程序,从键盘输入一个字符串Str1,在新的一行输入一...
include "stdio.h"#include "string.h"void deleteChar(char *a,char c)\/\/从特定字符串中删除特定字符{ int i; char *d=NULL;if((d=strchr(a,c))!=NULL)\/\/找到这个字符,从后一位向前移位,将其覆盖,达到删除的目的 { for(i=0;*(d+i)!=0;i++)(d+i)=*(d+i+1);} }in...

用c语言编写一个程序,从键盘上输入3个字符串,输出其中的最大者_百度...
1. int strcmp( const char *str1, const char *str2 );功能:比较字符串str1 and str2, 返回值如下:返回值 < 0 str1 < str2 = 0 str1 == str2 > 0 str1 > str2 include <stdio.h>#include <string.h>int main(){ char a[100], b[100], c[100]; printf...

任城区13083614583: C语言:由键盘任意输入一个整数(变量zs)、一个实数(变量 -
窄品奥诺: 代码编写示例如下:1 2 3 4 5 6 7 8 9 10 11#include<stdio.h> intmain() {intzs;doubless;printf("请输入1个整数和1个实数,以分号间隔:");scanf("%d;%lf",&zs,&ss);doublesh=ss/zs;printf("%.8f",sh);return0; } 运行截图:

任城区13083614583: C语言编程实现:从键盘中输入任意一个多位的整数(位数不确定),将其每一位之间都用$分隔符分割之后... -
窄品奥诺: #include<stdio.h> void print(int a) { if(a<10) printf("%d",a); else { print(a/10); printf("$%d",a%10); } } void main() { int a; printf("请输入:"); scanf("%d",&a); print(a); }

任城区13083614583: c语言编程由键盘输入任意一个整数,求其每位数字的平方和及平方根和. -
窄品奥诺: #include <math.h> #include <stdio.h> long main() {int n;int ans=0;double ans1=0;printf("请输入一个整数");scanf("%d",&n);while(n!=0){long temp=n%10;ans+=temp*temp;ans1+=sqrt(temp);n/=10;}printf("平方和为%d\n",ans);printf("平方和为%f\n",ans1);return(0); } 已经改过可以运行,既然输入整数,最后把n定义为整数类型,不是浮点类型.

任城区13083614583: 从键盘上任意输入一个整数,利用c语言程序设计实现判断该数是否为质数,并输出判断结果 -
窄品奥诺: #include "stdio.h" int main(int argc,char *argv[]){ int n,i; printf("Please enter a positive integer...\nn="); if(scanf("%d",&n)!=1 || n<1){ printf("Input error, exit...\n"); return 0; } printf("%d is ",n); if(n>2 && !(n&1) || n<2) printf("not a prime ...

任城区13083614583: 从键盘输入任意一个整数,编程计算该数各位数字的累加和(忽略整数前的正负号).用c语言怎么编程? -
窄品奥诺: #include int main() {printf("输入一个0-99999的整数\n");int i,j;while(1){scanf("%d",&i);j=i/10000+i%10000/1000+i%10000%1000/100+i%10000%1000%100/10+i%10;pri订怠斥干俪妨筹施船渐ntf("%s\n","各位之和为:");printf("%d\n",j);}return 0; } 如果要是负数在前边再加上判断,一个负号就行了

任城区13083614583: 由键盘任意输入一个正整数,要求:判断并显示它是几位数且计算并显示该数的各位数字之和.用c语言编程 谢谢 -
窄品奥诺: #include<stdio.h> #include<string.h> void main() {int i,j,sum=0;char a[100];printf("ÇëÊäÈëÕûÊý£º\n");gets(a);for(i=0,j=0;a[i]!='\0';i++){j++;sum+=a[i]-'0';}printf("%sÊÇ%dλÊý,¸ÃÊýµÄ¸÷λÊý*ÖÖ®ºÍ%d\n",a,j,sum); }

任城区13083614583: C语言 由键盘任意输入一个整数(变量zs)、一个实数(变量ss),运行时, -
窄品奥诺: #include int main() { int zs; double ss; scanf("%d;%lf",&zs,&ss); double sh=ss/zs; printf("%.8f",sh); return 0; }

任城区13083614583: c语言设计程序:用函数实现:从键盘输入一个整数,判断其是否是素数;如是,则打印YES,否则打印NO. -
窄品奥诺: #include"stdio.h"main(){int a = 0; int i;printf("请输入整数:");scanf("%d",&a);for(i = 2;i<a;i++)if(a%i==0){printf("NO");break;}if(i==a) printf("YES");}

任城区13083614583: 用C语言编写:从键盘输入任意一个正整数,求其各位数字立方和 -
窄品奥诺: 本人也是学C语言的,以下的程序是按照你的要求编写的: #include <stdio.h> //求输入数各位数的立方和 void main() { int x,sum=0,j; printf("请输入一个正整数:"); scanf("%d",&x); //输入一个数 while(x!=0) //判断X是否为零 { j=x%10; //取个位数字 sum+=j*j*j; //累加其立方和 x/=10; //将高位降低一位 } printf("该数各位数的立方和为:%d.\n",sum); } 如果这个程序还有什么不明白,可以问我.

任城区13083614583: C语言编程:从键盘输入任意个整数,输入 - 1时结束,分别统计其中奇数和偶数的个数 -
窄品奥诺: #include "stdio.h" int main() { int count1=0,count2=0,i; while(1) { scanf("%d",&i); if(i==-1) break; else if(i%2==0) count1++; else if(i%2==1) count2++; } printf("奇数共有%d个,偶数共有%d个.\n",count2,count1); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网