1.素数和
#include <stdio.h> int isprime(int x,int a[],int len ); int main() { int n,m; //定义要输入的第 n个素数和第m个素数 scanf("%d %d",&n,&m); int a[200]={2,}; //因为m<=200,所以这里设数组大小为200,并给出第一个素数2 int count=1; //因为数组内已经有一个素数了,所以定位1 int i=3; //从3开始判断 int sum=0; //定义素数的和是多少 while(count<m){ //当个数小于数组大小就循环,还有一点就是数组的第一个下标为0, if (isprime(i,a,count)){ a[count++]=i; //虽然结束循环时count=m,但是数组下标到m-1,也就是第m个素数 } i++; } for(int i=n-1;i<m;i++){ //遍历,从第n个素数开始,也就是下标n-1,直到第m个素数结束,下标也就是m-1 sum+=a[i]; } printf("%d",sum); return 0; } int isprime(int x,int a[],int len ) //定义判断i是否是素数的函数 { int ret=1; //先假定是素数 int i; for(i=0;i<len;i++){ //遍历,用素数表当前的素数去判断x是否是素数。 if(x%a[i]==0){ ret=0; break; } } return ret; }
2.念整数
#include <stdio.h> int main() { int n; int number; //定义n每次循环时的第一个数 int count=1; //这里还是用到了之前讲的,整数分解,应用整数分解算法。 scanf("%d",&n); int x=n; if(n<0){ printf("fu "); n=-n; x=-x; } while(x>9){ x/=10; count*=10; } do{ number=n/count; n%=count; count/=10; switch(number){ case 0:printf("ling");break; case 1:printf("yi");break; case 2:printf("er");break; case 3:printf("san");break; case 4:printf("si");break; case 5:printf("wu");break; case 6:printf("liu");break; case 7:printf("qi");break; case 8:printf("ba");break; case 9:printf("jiu");break; } if(count>0){ printf(" "); //保证除了最后一个数,其他数直接都有空格 } }while(count>0); return 0; }