永发信息网

求教c语言大神此题怎么做

答案:2  悬赏:60  手机版
解决时间 2021-02-07 06:06
  • 提问者网友:情歌越听越心酸
  • 2021-02-07 02:30
孪生素数
题目描述
如果n和n+2都是素数,则称它们是孪生素数。输入m,输出两个均不超过m的最大孪生素数。
例如,m=20时答案是17,19,m=1000时答案是881,883.

输入描述
输入只有一个整数m.

输出描述
不超过m的最大孪生素数.

输入样例
20
1000

输出样例
17 19
881 883
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-02-07 03:05
#include <stdio.h>#include <math.h>int main(){ int m; int i,j,k; int num=0, s; scanf( "%d", &m); for( i=m;i>=2;i-- ) { s = 1; k = sqrt(i); for( j=2;j<=k;j++ ) { if( i%j == 0 ) { s = 0; break; } } if( s ) { k = sqrt( i+2 ); for( j=2;j<=k;j++ ) { if( (i+2)%j == 0 ) { s = 0; break; } } if( s ) { ++num; printf( "第%d个孪生素数[%d,%d]\n", num, i, i+2 ); } }break; } return 0;}
全部回答
  • 1楼网友:平生事
  • 2021-02-07 04:01
#include <stdio.h> int main() {  int i, j, n = 2;//n为行数,i行标,j列标  for(i = 1; i <= n; i++) //1~2行  {   for(j = 1; j <= 2*i-1; j++) //找出行和列的*号等差对应关系,如果是第1行则1个*   {    printf("*");   }   printf("\n");  }  for(i = 1; i <= n; i++)//3~4行  {   for(j = 1; j <= 2*i+4; j++) //找出行和列的*号等差对应关系,如果是第1行则6个*   {    printf("*");   }   printf("\n");  }  return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯