输出区间上素数及个数
怎么做? 看起眼花,请上代码好吧. 你的思路和代码呢? 时间有点紧,写了这个代码。可以运行出你想要的结果,给你做个参考吧。有不对的地方共同探讨
#include <stdio.h>
#include <math.h>
void main()
{
int i, k, m;
printf("请输入一个自然数: \n");
scanf("%d", &m);
k = sqrt((double)m);
if ( m <= 0)
{
printf("该数值错误\n");
}
for( i = 2; i <= k; i++)
{
if ( m % i == 0)
{
break;
}
}
if ( i > k )
{
printf("该数是素数\n");
}
else
{
printf("该数是非素数\n");
}
}
/**************************************
--------------------------------------
请输入想求的区间m和n(m和n比1大):
2 50
区间的素数有:
2 3 5 7
11131719
23293137
414347
共有素数15个
请按任意键继续. . .
--------------------------------------
****************************************/ 发错了 那个是判断是否为素数,这个才是正确的代码
#include <stdio.h>
#include <math.h>
int main(void)
{
int m, n, i,j, k = 0, s;
printf("请输入想求的区间m和n(m和n比1大):\n");
scanf("%d %d", &m, &n);
printf("区间[%d,%d]的素数有:\n", m, n);
for ( i = m; i < n; i++ )
{
s = sqrt((double)i);
for ( j = 2; j <= s; j++ )
{
if ( i % j == 0 )
{
break;
}
}
if ( j > s )
{
printf("%4d", i);
k++;
if ( k % 4 == 0 )
{
printf("\n");
}
}
}
printf("\n");
printf("共有素数%d个 \n", k);
}
/**************************************
--------------------------------------
请输入想求的区间m和n(m和n比1大):
2 50
区间的素数有:
2 3 5 7
11131719
23293137
414347
共有素数15个
请按任意键继续. . .
--------------------------------------
****************************************/
页:
[1]