孪生素数
题目描述
如果n和n+2都是素数,则称它们是孪生素数。输入m,输出两个均不超过m的最大孪生素数。
例如,m=20时答案是17,19,m=1000时答案是881,883.
输入描述
输入只有一个整数m.
输出描述
不超过m的最大孪生素数.
输入样例
20
1000
输出样例
17 19
881 883
求教c语言大神此题怎么做
答案:2 悬赏:60 手机版
解决时间 2021-02-07 06:06
- 提问者网友:情歌越听越心酸
- 2021-02-07 02:30
最佳答案
- 五星知识达人网友:逃夭
- 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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯