c语言 把一个数分解成两个素数的和,判断素数精简算法,scanf("%c")读入的是回车符‘\n’
来源:互联网 发布:移动运营商数据分析 编辑:程序博客网 时间:2024/05/19 18:12
/**把一个数分解成两个素数的和*/#include<stdio.h>#include<math.h>void main(){ int n; char doagain='n'; char temp; do { printf("输入一个数:"); scanf("%d",&n); int i; int count=0; for(i=1;i<n;i++) { if(isPrime(i)&&isPrime(n-i))//如果返回1表示 i是质数,如果两个数都是质数 { printf("%d=%d+%d\n",n,i,n-i); count++; } } if(count==0) { printf("%d无法分解成两个质数的和式\n",n); } printf("继续[y/n]?:");// scanf("%s",&doagain);//这样是可以的// scanf("%c",&doagain);//这样无法循环,因为读入的字符其实是回车符,不满足循环条件,所以循环结束 scanf("%c%c",&temp,&doagain);//这样就可循环了,读入第一个的字符是回车,接着才读到控制字符[y|n] printf("第一个字符是回车?%d\n",(temp=='\n'));//输出1:表示真的是回车符 printf("多余的字符:%c",temp);//打印了一个回车/* 这里总结:如果使用字符作为循环控制符,会多读入一个回车符‘\n’(使用%c%c), 第一个%c读入回车符,第二个%c读入的才是循环控制符 或者使用%s,就可以这个问题*/ }while((doagain=='y')||(doagain=='Y'));}int isPrime(int n)//判断一个数是不是质数{ int i; if(n<2) return 0; for(i=2;i<=sqrt(n);i++) { if(n%i==0)//如果n被其他书整除 return 0;//那就不是质数,返回0表示不是质数 } return 1;}
测试:
输入一个数:1212=5+712=7+5继续[y/n]?:y第一个字符是回车?1多余的字符:输入一个数:3434=3+3134=5+2934=11+2334=17+1734=23+1134=29+534=31+3继续[y/n]?:n第一个字符是回车?1多余的字符:
阅读全文
0 0
- c语言 把一个数分解成两个素数的和,判断素数精简算法,scanf("%c")读入的是回车符‘\n’
- c语言判断素数和输入一个数n代表有n行数据的问题
- C语言如何判断一个数是素数,输出100-200之间的全部素数。
- c语言实现判断一个数是否是素数
- 水仙花数&素数&质因数分解的C语言实现
- C语言中怎么判断一个数是否是素数(即质数)
- miller_rabin素数判断和pollard_rho的素数因子分解算法
- 判断一个数是否是素数的两种算法
- 判断一个数是否是素数的算法
- 利用Java判断一个数是否是素数的算法
- 【c语言】查找某个数后的n个素数
- 判断输入的一个数是素数
- 【c语言】判断某个区间所有的数谁是素数
- 偶数分解成两个素数的和
- Double Happiness 113C 4n+1的素数必能表示成两个平方数的和
- c语言:实现一个函数,判断一个数是不是素数。
- C语言 实现一个函数,判断一个数是不是素数
- C/C++ 输入一个数 判断是否是素数
- Go小tips
- c语言操作符
- Get与Post的区别
- 4.文件数据源-本地文件
- [简单逻辑学]逻辑学的基本原理——定义术语
- c语言 把一个数分解成两个素数的和,判断素数精简算法,scanf("%c")读入的是回车符‘\n’
- 开发问题总结
- Hive学习笔记 1 Hive体系结构
- 【每周论文】Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing
- Linux shell 教程 01_shell变量
- 2017-10-8离线赛总结
- Scrapy学习笔记(4)—Spider
- 图像基本知识(1)
- C++容易忘记的知识点——map和set(六)