1-100的素数 流程图
- 格式:vsd
- 大小:54.00 KB
- 文档页数:1


1. 输出3到100的素数#include<stdio.h>main(){int i,t;for (i=3;i<=100;i++) { for(t=2;t<=i;t++)if(i%t==0)break;if(t==i)printf("%d\t",i);}}2. 判断a是不是素数?#include<stdio.h>main(){int a,i;scanf("%d",&a);for(i=2;i<a;i++)if(a%i==0)break;if(a==i)printf("%d是素数",a);elseprintf("%d不是素数",a);}3. 编写程序,使数组10个元素的值分别为0到9,然后逆序输出。
#include<stdio.h>main(){int i,a[10];for(i=0;i<10;i++)a[i]=i;for(i=9;i>=0;i--)printf("%4d",a[i]);printf("\n");}4. 从键盘输入10个数,找出最大值及其位置#include<stdio.h>void main(){int ab[10],i,max,pos;for(i=0;i<10;i++)scanf("%d",&ab[i]);max=ab[0];pos=0;for(i=1;i<10;i++)if(max<ab[i]){max=ab[i];pos=i;}for(i=0;i<10;i++)printf("max=%d,postion=%d",max,pos+1); }5. 判断是不是水仙花数#include<stdio.h>main(){int t,a,b,c;scanf("%d",&t);a=(t-t%100)/100;c=(t%100)%10;b=(t%100-c)/10;if(t==a*a*a+b*b*b+c*c*c)printf("%d",t);elseprintf("无效");}6.在3到1000的全部润年#include<stdio.h>main(){int year;for(year=3;year<=1000;year++){if(!(year%4==0&&year%100!=0||year%400==0)) continue;printf(“%4d”,year);}}7. 求1+2+3+4…+100之和#include<stdio.h>main(){int i,s;s=0;for(i=1;i<=100;i++)s=i+s;printf("s=%d",s);}或者#include<stdio.h>main(){int i,s;s=0;i=1;do{s=s+i;i++;}while(i<=100);printf("s=%d,i=%d\n",s,i);}7.求n!#include<stdio.h>main(){int n,i,p=1;int n,i;scanf(“%d”,&n);for(i=1;i<=n;i++)p=p*i;printf(“%ld\n”,p);}8.输入三个实数a,b,c要求从小到大的顺序输出#include<stdio.h>main(){float a,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;b=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f\n",a,b,c);}9.判断年份是不是润年?#include<stdio.h>main(){int year;printf("请输入年份");scanf("%d",&year);{if(year%4==0&&year%100!=0||year%400==0)printf("%4d是闰年",year);elseprintf("%4d不是润年",year);}}10.寻找1-999中的水仙花数#include<stdio.h>main(){int i,j,k;for(i=1;i<10;i++)for(j=0;j<10;j++)for(k=0;k<10;k++)if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf( "%d\t ",(i*100+j*10+k)); }11.比较大小#include<stdio.h>main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);if(a>b)if(a>c)max=a;elsemax=c;elseif(b>c)max=b;elsemax=c;printf("max=%d\n",max);}12.任意输入一行大写字母,将它们转换成小写字母后输出。
筛法--求1到100的所有素数⽤筛法求出100以内的全部素数,并按每⾏五个数显⽰我们知道⼀个合数可以分解了⼏个质数想乘,从2开始知道根号下n每次判断⼀个数是否为素数,如果为素数,就把所有能被这个数整除的数排除,即不是素数。
⾸先是⼀个判断素数的函数1bool sushu(int x)2 {3if (x==2)4return true;5for (int i = 2;i <= sqrt(x);i++)6 {7if (x%i==0)8return false;9 }10return true;11 }把能被素数整除得数排除1for (int i = 2;i <= sqrt(n);i++)2 {3if (sushu(i))4 {5for (int j= 2;j <= n/i;j++)6 {7 a[i*j]=false;8 }9 }10 }完整代码:1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <math.h>5 #include <algorithm>6 #include <iomanip>7using namespace std;8bool sushu(int x)9 {10if (x==2)11return true;12for (int i = 2;i <= sqrt(x);i++)13 {14if (x%i==0)15return false;16 }17return true;18 }19int main()20 {21int const n = 100;22bool a[10000];23 memset(a,true,sizeof(a));24 a[1]=false;25for (int i = 2;i <= sqrt(n);i++)26 {27if (sushu(i))28 {29for (int j= 2;j <= n/i;j++)30 {31 a[i*j]=false;32 }33 }34 }35int ans=0;36for(int i = 1;i <= n;i++) 37 {38if (a[i]){39 printf ("%-5d",i);40 ans++;41 }42if (ans==5)43 {44 ans=0;45 cout<<endl;46 }47 }48return0;49 }。