求素数个数
求100到200素数个数并输出所有素数
#include <stdio.h>
#include<math.h>
int main()
{
int n;
int i;
int d;
int flag=0;
for(n=100;n<=200;n++)
{
flag=0;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=1;
break;
}
}
if(flag==0)
d++;
printf("%d\n%d ",d,n);
}
return 0;
}
我求个数的部分错了,求告知怎么改 本帖最后由 jackz007 于 2020-11-7 11:35 编辑
#include <stdio.h>
int main()
{
int c , d , f , k ;
for(c = 0 , k = 100 ; k <= 200 ; k ++) {
for(f = 1 , d = 2 ; d * d < k + 1 ; d ++) {
if(d < k && ! (k % d)) {
f -- ;
break ;
}
}
if(f) {
if(! c) printf("%d" , k) ;
else printf(" %d" , k) ;
c ++ ;
}
}
printf("\n") ;
printf("the counts of prime are: %d\n" , c) ;
}
编译运行实况:
D:\00.Excise\C>g++ -o s s.c
D:\00.Excise\C>s
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199
the counts of prime are: 21
D:\00.Excise\C> int main()
{
int n;
int i;
int d=0; //d需要初始化
int flag = 0;
for (n = 100; n <= 200; n++)
{
flag = 0;
for (i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
d++;
printf("%d\n", n); //跳出之前,把当前素数打印出来
}//printf("%d\n%d ", d, n); //这行改了
}
printf("%d", d); //最后打印出个数
return 0;
} 本帖最后由 昨非 于 2020-11-7 11:29 编辑
按照你的原先代码做了修改
修改内容见注释
输出各个素数,最后输出计数结果
满意的话,还望给个最佳
页:
[1]