读书人

编程在屏幕上输出2~n间所有的素数

发布时间: 2013-11-25 13:22:27 作者: rapoo

编程,在屏幕上输出2~n间所有的素数,n从键盘上输出,但以下的程序不知错在哪,求解?
#include<stdio.h>
int main()
{
int n;

printf("请输入一个整数n:");
scanf("%d",&n);
int x,y;
int flag;
for(x=2;x<=n;x++)
{
flag=1;
for(y=2;y<x;y++)
{

if(x%y==0)
flag=0;
}
if(1==flag)
printf("5%d",x);
}
}
[解决办法]


bool isPrime(int number)// 求素数
{
int i;
int k;

k = (int)sqrt((double)number); // 用平方根,而非用number/2,相对提高速度sqrt(number)/2倍
for(i = 2; i <= k; i++)
{
if(number%i==0)
break;
}
if (i > k) return true;// 没有找到可以整除的除数,被除数是 prime number
else return false;
}


[解决办法]

printf("5%d",x);
//换成这个,程序没发现什么问题
printf("%d ",x);

[解决办法]

#include<stdio.h>
int main()
{
int n;
int x,y;
int flag;
printf("请输入一个整数n:");
scanf("%d",&n);

for(x=2;x<=n;x++)
{
flag=1;
for(y=2;y<x;y++)
{

if(x%y==0)
flag=0;
}
if(1==flag)
printf("%5d\n",x);
}
}
你这这nb啊,这程序写的
[解决办法]


#include <stdio.h>

int main()
{
int n;
int x, y;
int flag;

printf("请输入一个整数n: ");
scanf("%d", &n);

for (x = 2; x <= n; x++) {
flag = 1;

for (y = 2; y < x; y++) {
if (x % y == 0) {
flag = 0;
break;
}
}

if (1 == flag)
printf("%5d\n", x);
}
}

请输入一个整数n: 10
2
3
5
7

读书人网 >C语言

热点推荐