C++求100以内所有的素数

C++求100以内所有的素数
C++求100以内所有的素数

#include

using namespace std;

int main(void)

{

int k=0;

for(int i=1;i<=100;i++)

{

for(int j=2;j

{

k=1;

if(i%j==0)

{

k=0;break;

}

}

if(k==1)

cout<

}

cout<

return 0;

}

100以内的质数表

栾川县叫河中学100以内的质数表100以内的质数表 二、三、五、七、一十一;二、三、五、七、一十一; 一三,一九、一十七;一三,一九、一十七; 二三,二九,三十七;二三,二九,三十七; 三一,四一,四十七;三一,四一,四十七; 四三,五三,五十九;四三,五三,五十九; 六一,七一,六十七;六一,七一,六十七; 七三,八三,八十九;七三,八三,八十九; 再加七九,九十七;再加七九,九十七; 二十五个不能少。二十五个不能少。 百以内质数心中记。百以内质数心中记。 100以内的质数表100以内的质数表二、三、五、七、一十一;二、三、五、七、一十一; 一三,一九、一十七;一三,一九、一十七; 二三,二九,三十七;二三,二九,三十七; 三一,四一,四十七;三一,四一,四十七; 四三,五三,五十九;四三,五三,五十九; 六一,七一,六十七;六一,七一,六十七; 七三,八三,八十九;七三,八三,八十九;

再加七九,九十七;再加七九,九十七; 二十五个不能少。二十五个不能少。 百以内质数心中记。百以内质数心中记。 100以内的质数表100以内的质数表 二、三、五、七、一十一;二、三、五、七、一十一; 一三,一九、一十七;一三,一九、一十七; 二三,二九,三十七;二三,二九,三十七; 三一,四一,四十七;三一,四一,四十七; 四三,五三,五十九;四三,五三,五十九; 六一,七一,六十七;六一,七一,六十七; 七三,八三,八十九;七三,八三,八十九; 再加七九,九十七;再加七九,九十七; 二十五个不能少。二十五个不能少。 百以内质数心中记。百以内质数心中记。 100以内的质数表100以内的质数表二、三、五、七、一十一;二、三、五、七、一十一;一三,一九、一十七;一三,一九、一十七;

C语言习题100例

C程序100例 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } =========================================================== ===

【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15;

C语言求素数(质数)Eratosthenes经典算法

//使用Eratosthenes方法找出指定范围内的所有质数 #include #define SIZE 500 //该方法能够求出2*SIZE 之内的质数#define TRUE 1 #define FALSE 0 int main() { char sieve[ SIZE ]; /* the sieve */ char *sp; /* pointer to access the sieve */ int number; /* number we’re computing */ /* ** Set the entire sieve to TRUE. */ for(sp = sieve; sp<&sieve[ SIZE ]; ) *sp++ = TRUE; /*** Process each number from 3 to as many as the sieve holds. (Note: the ** loop is terminated from inside.) */ for( number = 3; ; number += 2 ){ /* ** Set the pointer to the proper element in the sieve, and stop ** the loop if we’ve gone too far. */ sp = &sieve[ 0 ] + ( number-3 ) / 2; if(sp>= &sieve[ SIZE ] ) break; /* ** Now advance the pointer by multiples of the number and set ** each subsequent entry FALSE. */ while(sp += number, sp<&sieve[ SIZE ] ) *sp = FALSE; } /* ** Go through the entire sieve now and print the numbers corresponding ** to the locations that remain TRUE. */ printf( "2\t" ); for( number = 3, sp = &sieve[ 0 ]; sp<&sieve[ SIZE ]; number += 2, sp++ ){ if( *sp ) printf( "%d\t", number );

C语言求质数

试编写一个程序,找出2->N之间的所有质数。希望用尽可能快的方法实现。 【问题分析】: 这个问题可以有两种解法:一种是用“筛子法”,另一种是从2->N检查,找出质数。 先来简单介绍一下“筛法”,求2~20的质数,它的做法是先把2~20这些数一字排开: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 先取出数组中最小的数,是2,则判断2是质数,把后面2的倍数全部删掉。 2 | 3 5 7 9 11 13 15 17 19 接下来的最小数是3,取出,再删掉3的倍数 2 3 | 5 7 11 13 17 19 一直这样下去,直到结束。 筛法求质数的问题时,非质数的数据有很多是重复的。例如,如果有一个数3×7×17×23,那么在删除3的倍数时会删到它,删7、17、23时同样也会删到它。有一种“线性筛法”,可以安排删除的次序,使得每一个非质数都只被删除一次。从而提高效率。因为“筛法”不是我要介绍的重点,所以就不介绍了。 现在我来介绍第二种方法。用这种方法,最先想到的就是让从2~N逐一检查。如果是就显示出来,如果不是,就检查下一个。这是正确的做法,但效率却不高。当然,2是质数,那么2的倍数就不是质数,如果令i从2到N,就很冤枉地测试了4、6、8……这些数?所以第一点改建就是只测试2与所有的奇数就足够了。同理,3是质数,但6、9、12……这些3的倍数却不是,因此,如果能够把2与3的倍数跳过去而不测试,任意连续的6个数中,就只会测试2个而已。以6n,6n+1,6n+2,6n+3,6n+4,6n+5为例,6n,6n+2,6n+4是偶数,又6n+3是3的倍数,所以如果2与3的倍数都不理会,只要测试的数就只留下6n+1和6n+5而已了,因而工作量只是前面想法的2/6=1/3,应该用这个方法编程。 还有个问题,就是如果判断一个数i是否为素数。按素数的定义,也就是只有1与本身可以整除,所以可以用2~i-1去除i,如果都除不尽,i就是素数。观点对,但却与上一点一样的笨拙。当i>2时,有哪一个数可以被i-1除尽的?没有,为什么?如果i不是质数,那么i=a×b,此地a与b既不是i又不是1;正因为a>1,a至少为2,因此b最多也是i/2而已,去除i的数用不着是2~i-1,而用2~i/2就可以了。不但如此,因为i=a×b,a与b不能大于sqrt(i),为什么呢?如果a>sqrt(i),b>sqrt(i),于是a×b>sqrt(i)*sqrt(i)=i,因此就都不能整除i了。如果i不是质数,它的因子最大就是sqrt(i);换言之,用2~sqrt(i)去检验就行了。 但是,用2~sqrt(i)去检验也是浪费。就像前面一样,2除不尽,2的倍数也除不尽;同理,3除不尽,3的倍数也除不尽……最理想的方法就是用质数去除i。 但问题是这些素数从何而来?这比较简单,可以准备一个数组prime[],用来存放找到的素数,一开始它里面有2、3、5。检查的时候,就用prime[]中小于sqrt(i)的数去除i即可,如果都除不尽,i就是素数,把它放如prime[]中,因此prime[]中的素数会越来越多,直到满足个数为止! 不妨用这段说明来编写这个程序,但是程序设计的时候会有两个小问题: 1.如果只检查6n+1和6n+5?不难发现,它们的距离是4、2、4、2……所以,可以先定义一个变量gab=4,然后gab=6-gab; 2.比较是不能用sqrt(i),因为它不精确。举个例子,i=121,在数学上,sqrt(i)自然是11,但计算机里的结果可能是10.9999999,于是去除的数就是2、3、5、7,而不含11,因此121就变成质数了。解决这个问题的方法很简单,不要用开方,用平方即可。例如,如果p*p<=i,则就用p去除i。而且它的效率比开方高。 【程序清单】: #include int creat_prime(int prime[],int n,int total)

C语言经典算法100例题目

看懂一个程序,分三步:1、流程;2、每个语句的功能;3、试数;小程序:1、尝试编程去解决他;2、看答案;3、修改程序,不同的输出结果; 4、照答案去敲; 5、调试错误; 6、不看答案,自己把答案敲出来; 7、实在不会就背会。。。。。周而复始,反复的敲。。。。。 【程序1】 题目:有1、2、3、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?【程序2】 题目:企业发放的奖金根据利润提成。利润(I) 低于或等于10 万元时,奖金可提10%;利润高于10 万元,低于20 万元时,低于10 万元的部分按10%提成,高于10 万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60 万到100万之间时,高于60万元的部分,可提成 1.5%,高于100 万元时,超过100 万元的部分按1%提成,从键盘输入当月利润I ,求应发放奖金总数?【程序3】 题目:一个整数,它加上100 后是一个完全平方数,再加上168 又是一个完全平方数,请问该数是多少?【程序4】 题目:输入某年某月某日,判断这一天是这一年的第几天? 【程序5】 题目:输入三个整数x,y,z ,请把这三个数由小到大输出 【程序6】 题目:用*号输出字母 C 的图案 【程序7】 题目:输出特殊图案,请在 c 环境中运行,看一看,Very Beautiful! 【程序8】题目:输出9*9 口诀 【程序9】题目:要求输出国际象棋棋盘。 【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。 【程序11】 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 【程序12】 题目:判断101-200 之间有多少个素数,并输出所有素数。 【程序13】 题目:打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数” ,因为153=1的三次方+5的三次方+ 3 的三次方。 【程序14】

C 使用筛选法求100以内的素数

C 使用筛选法求100以内的素数 C++使用筛选法求100以内的素数,具体问题分析及其代码如下: 【问题分析】 我们可以把100个数看作是沙子和石子,素数是石子,非素数的是沙子,弄个筛子,将沙子筛掉,剩下的就是素数。 1至100这些自然数可以分为三类: (1) 单位数:仅有一个数1. (2) 素数:这个数大于1,且只有它本身和1这样两个正因数。 (3) 合数:除了1和他自身以外,还有其他的正因数。 【代码如下】 /******************************************************** /* 程序名:素数筛选 /* 编程时间:2009年7月27日 /* 主要功能:求素数 *********************************************************/ #include using namespace std;//编译命令 #include const int MAX=100;//定义常量MAX int main()//主函数 { int prime[MAX+100]={0};//定义变量并初始化 int i,j,k=sqrt(MAX); for(i=2; i<=k; i++)//枚举筛数 { if(prime[i]==0)//如果这个数没被筛,就看看 { j=i*2;//将原数扩大二倍初始化给j do { prime[j]=1;//将j筛掉 j+=i; //再扩大一倍 } while(j<=MAX);//直到最大 } } for(i=2; i<=MAX; i++) { if(prime[i]==0)//循环输出 cout<

(完整版)C语言100个经典题目

C语言程序设计习题 授课对象:信息奥赛辅导成员 授课时间: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少? __________________________________________________________________ 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…. ___________________________________________________________________ 程序源代码: main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf(“%12ld %12ld”,f1,f2); if(i%2==0) printf(“\n”);/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,you try! 题目:判断101-200之间有多少个素数,并输出所有素数。 __________________________________________________________________ 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ___________________________________________________________________ 程序源代码: #include “math.h” main() { int m,i,k,h=0,leap=1;

用筛法求出100以内的全部素数

例6、用筛法求出100以内的全部素数,并按每行五个数显示。 【问题分析】 ⑴把2到100的自然数放入a[2]到a[100]中(所放入的数与下标号相同); ⑵在数组元素中,以下标为序,按顺序找到未曾找过的最小素数minp,和它的位置p(即下标号); ⑶从p+1开始,把凡是能被minp整除的各元素值从a数组中划去(筛掉),也就是给该元素值置0; ⑷让p=p+1,重复执行第②、③步骤,直到minp>Trunc(sqrt(N)) 为止; ⑸打印输出a数组中留下来、未被筛掉的各元素值,并按每行五个数显示。 用筛法求素数的过程示意如下(图中用下划线作删去标志): ① 2 3 4 5 6 7 8 9 10 11 12 13 14 15…98 99 100 {置数} ② 2 3 4 5 6 7 8 9 10 11 12 13 14 15…98 99 100 {筛去被2整除的数} ③ 2 3 4 5 6 7 8 9 10 11 12 13 14 15…98 99 100 {筛去被3整除的数} …… 2 3 4 5 6 7 8 9 10 11 12 13 14 15…98 99 100 {筛去被整除的数} Program Exam53; const N=100; type xx=1 .. N; {自定义子界类型xx(类型名)} Var a: array[xx] of boolean; i,j: integer; Begin Fillchar(a,sizeof(a),true); a[1] := False; for i:=2 to Trunc(sqrt(N)) do if a[I] then for j := 2 to N div I do a[I*j]:= False; t:=0; for i:=2 to N do if a[i] then Begin write(a[ i ]:5); inc(t); if t mod 5=0 then writeln end; End. 【例3】输入十个正整数,把这十个数按由大到小的顺序排列(将数据按一定顺序排列称为排序,排序的算法有很多,其中选择排序中的“简单选择排序”是一种较简单的方法) 分析:要把十个数按从大到小顺序排列,则排完后,第一个数最大,第二个数次大,……;因此,我们第一步可将第一个数与其后的各个数依次比较,若发现,比它大的,则与之交换,比较结束后,则第一个数已是最大的数。同理,第二步,将第二个数与其后各个数再依次比较,又可得出次大的数。如此方法进行比较,最后一次,将第九个数与第十个数比较,以决定次小的数。于是十个数的顺序排列结束。 例如下面对5个进行排序,这个五个数分别为829105。按选择排序方法,过程如

求100—200内所有素数

求100——200内所有素数 ①要判断一个数是不是素数,首先要知道什么是素数。回忆一下数学里的知识,什么是素数?只能被自身和1整除的正整数是素数。1既不是素数,也不是合数;2是最小的素数,也是唯一一个是偶数的素数。 ②判断一个正整数m是否为素数有多种方法。 方法1:让m依次被2,3,…,m-1除,如果m不能被2~m-1中的任何一个整数整除,则m是素数。 方法2:让m依次被2,3,…,m/2除,如果m不能被2~m/2中的任何一个整数整除,则m是素数。 方法3:让m依次被2,3,…,sqrt(m)除,如果m不能被2~sqrt(m)中的任意一个整数整除,则m为素数。sqrt(m)为m的平方根。 其中最后一种方法判断速度最快,因此这里采用最后一种方法。 ③判断一个整数是不是素数,由于需要一次一次地做除法,所以要使用循环。 程序如下: #include "math.h" main( ) { int m,i,k,n=0; for(m=101; m<=200; m+=2) { k=sqrt(m); for (i=2;i<=k;i++) if (m%i==0) break; if (i>k) {printf("%5d",m); n=n+1; if (n%10==0) printf("\n"); } } } 运行结果为: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
本文来自【C语言中文网】:https://www.360docs.net/doc/9014268436.html,/cpp/html/664.html

100以内素数和

--100以内素数的和,超哥出品 declare k number; t integer; x number default 0; i number default 2; v_sum number default 10; begin for n in 7 .. 100 loop select sqrt(n) into k from dual; select sqrt(n) into t from dual; while i <= k loop if MOD(n, i) = 0 then x := 1; exit; end if; i := i + 1; end loop; if (t > k) then if (i = t and x = 0) then v_sum := v_sum + n; end if; else if (i = t + 1 and x = 0) then v_sum := v_sum + n; end if; end if; i := 2; x := 0; end loop; dbms_output.put_line('Sum is ' || v_sum); end; --个人改进版这个判断条件是i=n但比上面的效率低,因为上面的循环是i到sqrt(n) declare v_sum number default 0; i integer default 2; begin for n in 2 .. 100 loop while i < n loop if MOD(n, i) = 0 then exit; end if; i := i + 1;

用C++或C语言编写出100以内所有互为质数的勾股数

C++:#include "iostream.h" using namespace std; int fun(int an,int bn,int cn) { int a,b,t; a = an; b = bn; if(a < b) { t = a; a = b; b = t; } while(t=a%b) { a = b; b = t; } if(b == 1) { cout<

C:#include int fun(int an,int bn,int cn) { int a,b,t; a = an; b = bn; if(a < b) { t = a; a = b; b = t; } while(t=a%b) { a = b; b = t; } if(b == 1) { printf("%d %d %d\n",an,bn,cn); return 0; } else { return 0; } } int main(int a,int b,int c) { for(a=1;a<100;a++) for(b=a;b<100;b++) for(c=b;c<100;c++) if(c*c==a*a+b*b) {fun(a,b,c); } return 0; }

C语言求素数问题算法

1.自然数是0,1,2…… 2.素数是2,3,5……(不包括1的只能背1和它本身整除的自然数) 【1】求10000以内的所有素数。 素数是除了1和它本身之外再不能被其他数整除的自然数。由于找不到一个通项公式来表示所有的素数,所以对于数学家来说,素数一直是一个未解之谜。像著名的哥德巴赫猜想、孪生素数猜想,几百年来不知吸引了世界上多少优秀的数学家。尽管他们苦心钻研,呕心沥血,但至今仍然未见分晓。 自从有了计算机之后,人们借助于计算机的威力,已经找到了2216091以内的所有素数。 求素数的方法有很多种,最简单的方法是根据素数的定义来求。对于一个自然数N,用大于1小于N的各个自然数都去除一下N,如果都除不尽,则N为素数,否则N为合数。 但是,如果用素数定义的方法来编制计算机程序,它的效率一定是非常低的,其中有许多地方都值得改进。 第一,对于一个自然数N,只要能被一个非1非自身的数整除,它就肯定不是素数,所以不 必再用其他的数去除。 第二,对于N来说,只需用小于N的素数去除就可以了。例如,如果N能被15整除,实际 上就能被3和5整除,如果N不能被3和5整除,那么N也决不会被15整除。 第三,对于N来说,不必用从2到N一1的所有素数去除,只需用小于等于√N(根号N)的所有素数去除就可以了。这一点可以用反证法来证明: 如果N是合数,则一定存在大于1小于N的整数d1和d2,使得N=d1×d2。 如果d1和d2均大于√N,则有:N=d1×d2>√N×√N=N。 而这是不可能的,所以,d1和d2中必有一个小于或等于√N。 基于上述分析,设计算法如下: (1)用2,3,5,7逐个试除N的方法求出100以内的所有素数。 (2)用100以内的所有素数逐个试除的方法求出10000以内的素数。 首先,将2,3,5,7分别存放在a[1]、a[2]、a[3]、a[4]中,以后每求出一个素数,只要不大于100,就依次存放在A 数组中的一个单元中。当我们求100—10000之间的素数时,可依次用a[1]-a[2]的素数去试除N,这个范围内的素数可以不保存,直接打印。 【2】用筛法求素数。 简单介绍一下厄拉多塞筛法。厄拉多塞是一位古希腊数学家,他在寻找素数时,采用了一种与众不同的方法:先将2-N的

(完整版)100以内的质数表

100以内的质数表: 100以内的质数表: 100以内的质数表: 100以内的质数表: 100以内的质数表: 100以内的质数表: 100以内的质数表: 100以内的质数表:

1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数 1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数 1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数 1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数 1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数 1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数 1. 一个数,如果只有1和它本身两个因数,这样的数叫 做质数(或素数)如2,3,5,7都是质数。 2. 一个数,如果除了1和它本身还有别的因数,这样的 数叫做合数。如4,6,15,49都是合数。 1不是质数,也不是合数。 3. 奇数×奇数= 奇数奇数+ 偶数= 奇数, 偶数×偶数= 偶数偶数+ 偶数= 偶数 奇数×偶数= 偶数奇数+ 奇数= 偶数

C语言必考100题解析

1.按下述格式,从键盘输入一个整数加法表达式:操作数1+操作数2,然后计算 并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。 2.输入两个整形数并打印,如果用户不慎输入了非法字符,那么程序提示“输入 数据类型错误”。 3.已知三角形的三边长a,b,c,要求编写程序,从键盘输入a,b,c的值,计算 并输出三角形的面积(注意不存在的情况)。 4.编程从键盘输入圆的半径r,计算并输出圆的周长和面积。 5.任意从键盘输入一个三位整数,要求正确分离它的个位,十位和百位数,并分 别在屏幕上输出。 6.写一个函数实现统计一个输入的整形数的位数。 7.编程计算方程ax*x+bx+c=0的根,a,b,c由键盘输入,只是用主函数来实现。 8.编写三个函数,分别在b*b-4*a*c大于0、小于0、等于0时进行调用,并输出 结果,在主函数中读入a、b、c的值。 9.从键盘输入你和你朋友的年龄,变成判断谁的年龄大,并打印最大者的年龄。 10.从键盘输入一个年份,判断该年是否是闰年,并输出结果。 11.判断某人是否属于肥胖体型。根据身高与体重因素,医务工作者经广泛的调查 分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,单位为kg,h为身高,单位为m)。当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t≧27时,为肥胖。编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。 12.利用switch语句将百分制成绩转化为五分制成绩。 13.利用switch语句将五分制成绩转换成对应分数范围并输出。 14.编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数 1 运算符op 操作数 2 计算表达式的值,指定的运算符为加减乘除。 15.利用时间函数编写一个猜数程序。 16.编程实现计算n的阶乘。 17.利用函数递归实现计算n!。 18.利用π/4=1-1/3+1/5-1/7……计算π的值直到最后一项的绝对值小于0.0001 为止,要求统计总共累加了多少项。 19.编程输出正三角格式的九九乘法表。 20.编程输出下三角格式的九九乘法表。 21.从键盘任意输入一个正整数,编程判断它是否是素数,若是素数,输出“YES”, 否则输出“NO!”。 22.编写一个程序实现输出1—100之间所有素数。 23.编写一个程序实现输出任意指定m、n之间的所有素数。 24.读入一个年份和月份,打印出该月有多少天(考虑闰年),用switch语句编程。 25.打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等 于该数本身。(例159=1*1*1+3*3*3+5*5*5) 26.鸡兔同笼,共有98个头,386只脚,编程求鸡兔各多少只。 27.用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚, 问共有几种兑换方案?并输出每种方案。 28.三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6 个黑色的,从中任取8个球,问共有多少种不同的颜色搭配? 29.打印100以内整数的平方根表。

最新版c语言经典习题100例(最全面)

C语言习题100例(最新整理版) 习题目录:(按住Ctrl点击可以快速跳转到对应页面) 【程序1】 (5) 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? (5) 【程序2】 (6) 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成 1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? (6) 【程序3】 (7) 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? (7) 【程序4】 (7) 题目:输入某年某月某日,判断这一天是这一年的第几天? (7) 【程序5】 (8) 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 (8) 【程序6】 (9) 题目:用*号输出字母C的图案。 (9) 【程序7】 (9) 题目:输出特殊图案,请在c环境中运行,看一看,VeryBeautiful! (9) 【程序8】 (9) 题目:输出9*9口诀。 (9) 【程序9】 (10) 题目:要求输出国际象棋棋盘。 (10) 【程序10】 (10) 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 (10) 【程序11】 (11) 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (11) 【程序12】 (11) 题目:判断101-200之间有多少个素数,并输出所有素数。 (11) 【程序13】 (12) 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 (12) 【程序14】 (12) 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 (12) 【程序15】 (13) 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 (13) 【程序16】 (13) 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 (13) 【程序17】 (14) 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 (14) 【程序18】 (14)

c语言试题100道

1. 按下述格式,从键盘输入一个整数加法表达式:操作数1+操作数2,然后计算并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。(课本62) 6. 输入两个整形数并打印,如果用户不慎输入了非法字符,那么程序提示“输入数据类型错 误”。(课本68 页) 7. 已知三角形的三边长a, b, c,要求编写程序,从键盘输入a, b, c的值,计算并 输出三角形的面积(注意不存在的情况)。(第三章习题) 8. 编程从键盘输入圆的半径r,计算并输出圆的周长和面积。(第三章习题) 9. 任意从键盘输入一个三位整数,要求正确分离它的个位,十位和百位数,并分别在屏幕上输出。 (课本82) 10. 写一个函数实现统计一个输入的整形数的位数。 11. 编程计算方程ax*x+bx+c=0 的根, a, b, c 由键盘输入,只是用主函数来实现。(课 本83 页,但需综合考虑) 12. 编写三个函数, 分别在b*b-4*a*c 大于0、小于0、等于0 时进行调用, 并输出结果, 在主函 数中读入a、b、c 的值。 13. 从键盘输入你和你朋友的年龄,编程判断谁的年龄大,并打印最大者的年龄。(课 本86 页) 14. 从键盘输入一个年份,判断该年是否是闰年,并输出结果。 15. 判断某人是否属于肥胖体型。根据身高与体重因素,医务工作者经广泛的调查分析给出了以下 按“体指数”对肥胖程度的划分:体指数t=w/h*h (w 为体重,单位为 kg, h为身高,单位为m)。当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t仝27时,为肥胖。编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。(课本89) 16. 利用switch 语句将百分制成绩转化为五分制成绩。(课本97) 17. 利用switch 语句将五分制成绩转换成对应分数范围并输出。 18. 编程设计一个简单的计算器程序, 要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数 2 计算表达式的值,指定的运算符为加减乘除。(课本98) 19. 利用时间函数编写一个猜数程序。(课本106) 20. 编程实现计算n 的阶乘。(课本107) 21. 利用函数递归实现计算n! 。 22. 利用n /4=1-1/3+1/5-1/7 ……计算n的值直到最后一项的绝对值小于0.0001为止, 要求统计总共累加了多少项。(课本112) 23. 编程输出正三角格式的九九乘法表。(课本118) 24. 编程输出下三角格式的九九乘法表。 25. 从键盘任意输入一个正整数,编程判断它是否是素数,若是素数,输出“YES ”, 否则输出“ NO!。(课本127) 26. 编写一个程序实现输出1—100之间所有素数。 27. 编写一个程序实现输出任意指定m、n 之间的所有素数。 28. 读入一个年份和月份,打印出该月有多少天(考虑闰年) ,用switch 语句编程。(课 本159)(主要是设定一个标志,考虑闰年) 29. 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 (例159=1*1*1+3*3*3+5*5*5 )(课本159) 30. 鸡兔同笼,共有98 个头, 386 只脚,编程求鸡兔各多少只。(课本160) 31. 用1 元5 角钱人名币兑换5 分、2 分和1 分的硬币(每一种都要有)共一百枚,问共有几种 兑换方案?并输出每种方案。(课本160)

质数表100以内

100以内的质数: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97。 定义 编辑 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 质数性质 编辑 质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,p n,设N=p1×p2×……×p n,那么,是素数或者不是素数。 如果为素数,则要大于p1,p2,……,p n,所以它不在那些假设的素数集合中。1、如果为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,p n整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。

2、其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。 记忆方法: 100以内的质数共有25个,这些质数我们经常用到,可以用下面的两种办法记住它们。 一、规律记忆法 首先记住2和3,而2和3两个质数的乘积为6。100以内的质数,一般都在6的倍数前、后来的位置上。如5、7、11、13、19、23、29、31、37、41、43……只有25、35、49、55、65、77、85、91、95这几个6的倍数前后位置上的数不是质数,而这几个数都是5或7的倍数。由此可知:100以内6的倍数前、后位置上的两个数,只要不是5或7的倍数,就一定是质数。根据这个特点可以记住100以内的质数。 二、分自类记忆法 我们可以把100以内的质数分为五类记忆。 第一类:20以内的质数,共8个:zd2、3、5、7、11、13、17、19。 第二类:个位数字是3或9,十位数字相差3的质数,共6个:23、29、53、59、83、89。 第三类:个位数字是1或7,十位数字相差3的质数,共4个:31、

100以内每个数的所有质数

1:1 2:1,2 3:1,3 4:1,2,4 5:1,5 6:1,2,3,6 7:1,7 8:1,2,4,8 9:1,3,9 10:1,2,5,10 11:1,11 12:1,2,3,4,6,12 13:1,13 14:1,2,7,14 15:1,3,5,15 16:1,2,4,8,16 17:1,17 18:1,2,3,6,9,18 19:1,19 20:1,2,4,5,10,20 21:1,3,7,21 22:1,2,11,22 23:1,23 24:1,2,3,4,6,8,12,24 25:1,5,25 26:1,2,13,26 27:1,3,9,27 28:1,2,4,7,14,28 29:1,29 30:1,2,3,5,6,10,15,30 31:1,31 32:1,2,4,8,16,32 33:1,3,11,33 34:1,2,17,34 35:1,5,7,35 36:1,2,3,4,6,9,12,18,36 37:1,37 38:1,2,19,38 39:1,3,13,39 40:1,2,4,5,8,10,20,40 41:1,41 42:1,2,3,6,7,14,21,42 43:1,43 44:1,2,4,11,22,44

45:1,3,5,9,15,45 46:1,2,23,46 47:1,47 48:1,2,3,4,6,8,12,16,24,48 49:1,7,49 50:1,2,5,10,25,50 51:1,3,17,51 52:1,2,4,13,26,52 53:1,53 54:1,2,3,6,9,18,27,54 55:1,5,11,55 56:1,2,4,7,8,14,28,56 57:1,3,19,57 58:1,2,29,58 59:1,59 60:1,2,3,4,5,6,10,12,15,20,30,60 61:1,61 62:1,2,31,62 63:1,3,7,9,21,63 64:1,2,4,8,16,32,64 65:1,5,13,65 66:1,2,3,6,11,22,33,66 67:1,67 68:1,2,4,17,34,68 69:1,3,23,69 70:1,2,5,7,10,14,35,70 71:1,71 72:1,2,3,4,6,8,9,12,18,24,36,72 73:1,73 74:1,2,37,74 75:1,3,5,15,25,75 76:1,2,4,19,38,76 77:1,7,11,77 78:1,2,3,6,13,26,39,78 79:1,79 80:1,2,4,5,8,10,16,20,40,80 81:1,3,9,27,81 82:1,2,41,82 83:1,83 84:1,2,3,4,6,7,12,14,21,28,42,84 85:1,5,17,85 86:1,2,43,86 87:1,3,29,87 88:1,2,4,8,11,22,44,88

相关文档
最新文档