c语言求素数伴侣.docVIP

  • 7
  • 0
  • 约1.07千字
  • 约 2页
  • 2021-01-27 发布于河北
  • 举报
#include stdio.h int n[100],m[50],count=0;//n用于盛放输入的数,m用于记录每种组合的素数伴侣,count用于记录数组小标 int i,s;////记录输入的数的个数 /////判断一个数是否为素数 int issu(int a) { int i; for(i=2;i=a/2;i++) if(a%i==0) return 0; return 1; } void f() { int j,k,l,temp[100],temp1=0; int p=0; i=s; ////////初始化数组temp[100] for(j=0;ji;j++) temp[j]=n[j]; //////求某中组合的素数伴侣的个数 for(j=0;ji;j++) for(k=j+1;ki;k++) { p=temp[j]+temp[k]; if(issu(p))///如果两个数的和为素数 { m[count]++;///对应的数组值加1(记录每中组合数的素数伴侣个数) for(l=k;li-1;l++) temp[l]=temp[l+1];///把满足条件的一对素数的后一个数的后面的数向前移一位 i--;///数组长度减去1 break;//跳出本次循环 } else continue; } count++;//数组下标加1 ////把数组的第一个数移动到最后一位。 temp1=n[0]; for(j=0;js-1;j++) n[j]=n[j+1]; n[s-1]=temp1; } void main() { int j,k; int temp; scanf(%d,s); for(j=0;js;j++) scanf(%d,,n[j]); for(j=0;js;j++)////对每一种组合,进行计算 f(); for(j=0;j50;j++)////对记录每种组合素数伴侣个数的数组进行排序(从大到小) for(k=j+1;k50;k++) if(m[j]m[k]) { temp=m[j]; m[j]=m[k]; m[k]=temp; } printf(%d\n,m[0]);///输出其中最大的一个 }

文档评论(0)

1亿VIP精品文档

相关文档