求200~1000之间的所有素数~~条件很多~~请C高手来 VFP 求出3~200之间的所有素数

作者&投稿:重劳 (若有异议请与网页底部的电邮联系)

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

#include <string.h>

#define TRUE 1

#define FALSE 0

int isPrime(int num) {

 int i;

 for(i = 2; i <= num / 2; i++) {

  if(num % i == 0)

   return FALSE;

 }

 return TRUE;

}

void printPrimeBetween(int s, int e) {

 int i, j;

 for (i = s, j = 0; i <= e; i++) {

  if(isPrime(i)) {

   printf("%-6d", i);  

   if(++j % 10 == 0)

    printf("
");

  }

 }

 printf("
");

}

void createNumBetween(int s, int e, int count) {

 int i, r;

 int* arr = (int *)malloc((e - s) * sizeof(int));

 if(!arr) {

  fprintf(stderr, "malloc failed!
");

  return;

 }

 memset(arr, 0, sizeof(int) * (e - s));

 srand(time(NULL));

 for (i = 0; i < count; i++) {

  r = (int)(((double)rand() / (double)RAND_MAX) * (e - s));

  arr[r]++;

 }

 for(i = 0; i < e - s; i++) {

  if(arr[i] != 0) {

   printf("%d--->%d
", i + s, arr[i]);

  }

 }

 free(arr);

}

void main() {

 printPrimeBetween(200, 2000);

 createNumBetween(900, 1000, 300);

请问哪里有错误指出来好么,也让我学习一下

VC60下运行没问题。

流程图懒得画,程序很简单你一看就懂,不给那加分也没关系



#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
int isPrime(int num) //判断num是不是素数
{
int i;
for(i = 2; i <= num / 2; i++)
{
if(num % i == 0)
return FALSE; //不是素数
}
return TRUE; //是素数
}
void printPrimeBetween(int s, int e) //求200到1000之间所有素数
{
int i, j;
for (i = s, j = 0; i <= e; i++)
{
if(isPrime(i)) //如果i输出
{
printf("%-6d", i);
if(++j % 10 == 0) //输出10个数后换行
printf("\n");
}
}
printf("\n");
}
void createNumBetween(int s, int e, int count) //产生200个两位正随机数
{
int i, r,sum=0;
int* arr = (int *)malloc((e - s) * sizeof(int)); //为arr分配内存
if(!arr) //分配内存失败弹出错误
{
fprintf(stderr, "malloc failed!\n");
return;
}
memset(arr, 0, sizeof(int) * (e - s));
srand(time(NULL)); //以时间为种子产生随机数
for (i = 0; i < count; i++)
{
r = (int)(((double)rand() / (double)RAND_MAX) * (e - s));
arr[r]++;
}
for(i = 0; i < e - s; i++) //输出统计结果
{
if(arr[i] != 0)
{
printf("%d--->%d\n", i + s, arr[i]);
}
sum+=arr[i];
}
printf("%d\n",sum);
free(arr);
}
void main()
{
printPrimeBetween(200, 1000); //调用函数printPrimeBetween
createNumBetween(10, 100, 200);
}

楼上 我不是故意和你抢分,这样很没素质,但是你的程序里有多处失误,还有没按楼主要求做题! 我最近也比较缺分,所以随手编了个!
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
int isprime(int n)
{
int i;
for(i=2; i<=sqrt(n); i++)
if(n%i == 0) return 0;
return 1;
}
void judge(int a[],int n)
{
int w,i,j;
for(i=10; i<100; i++)
{
w=0;
for(j=0; j<200; j++)
if(a[j]==i) w++;
if(w%3==0&&w!=0) printf("%d-->%d\n",i,w); //输出和3有关的统计个数
// if(w) printf("%d-->%d\n",i,w); //可以输出所有的统计情况
}
}
void main()
{
int i,j,a[200];
srand((unsigned)time(NULL));
for(i=201,j=0; i<=1000; i++)
if(isprime(i)) printf("%-8d",i);
putchar('\n');
for(i=0; i<200; i++)
{
a[i]=rand()%100;
if(a[i]<10) a[i]+=10;
}
judge(a,200);
}
lz叫生成2位数,你生成3位数,200--1000的素数,你生成的有点多了,人家好想还说和3有关,你也没注意到,我把你的也测试了,运行没问题。
但判断素数基本算法不够优化!
仅此而已,编的没问题!上面说你错误是我的问题,应该是多处失误!

设计一个程序,求出200~1000之间的所有素数,要求每行输出5个素数.判断一个整数是否为素数用一个函数来实~

筛法求素数,速度超快。
public class SievePrime {static int maxNumber = 1000;public static void main(String arg[]){boolean isPrime[] = new boolean[maxNumber+1];// 首先假定所有的数都是素数 for (int i = 2; i< maxNumber+1; i++)isPrime[i] = true;for (int i = 2; i< (int)Math.sqrt(maxNumber); i++){ if (isPrime[i]){ //把当前素数的整数倍筛掉 for (int j = i*i; j<maxNumber+1; j=j+i) isPrime[j] = false;//j ∈ {i^2, i^2+i, i^2+2i, ..., limit} }}//显示最后结果///*int n = 0;for (int i = 200; i< maxNumber+1; i++) if (isPrime[i]) { if (n%5 == 0) System.out.println(); System.out.print(i+""); n++; } //*/}}

clear
??"3到200之间的素数为:"
for i=3 to 200
x=0
for j=2 to i-1
if i/j=int(i/j)
x=1
endif
endfor
if x=0
??alltrim(str(i))+" "
endif
endfor

这够简单吧

C语言输出100到一千之间所有素数
答:首先打开CodeBlocks,创建一个新项目。项目语言,选择“c”,就可以写程序判断素数了,具体方法为:1、创建好项目后,我们打开 “main.c”文件。2、首先是实现输入口。3、输入口完成后,接下来就是判断素数。4、先定义好相关的变量,这里result是用来存储因子之和的,用循环,遍历所有可能因子。5、执行...

求100~200间的素数个数以及所有的素数
答:100,200区间内素数个数是 21 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

1000以内有哪些质因数
答:1000以内的质素有 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 223 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 ...

编写C语言程序,求100~200之间所有素数。
答:素数就是只能被1和本身整除的数,先定义一个函数用于判断一个数是否是素数,在从100到200依次循环判断,如果是素数则输出。参考代码:include<stdio.h>int fun(int n){//判断n是否是素数int i;for(i=2;i<n;i++)if(n%i==0) return 0;return 1; } int main(){ int i; for(i=100;i...

c语言求100-200之间的素数
答:思路:先定义一个函数isp用来判断一个数是否是素数,所谓素数是除了1和自身没有其他的因数,所以从2到该数减一,判断其是否可以整除该数,如果可以该数就不是素数,否则该数就是素数。最后从100到200依次判断并输出素数。参考代码:include <stdio.h>int fun(int n){int i;for(i=2;i<n;i++)...

编写java程序找出2-100之间的所有素数 求大神
答:找出100到200之间的所有素数并求和 include <stdio.h>#include <math.h>int primer(int min, int max){ int j,k,i; int sum = 0; for(i = min + 1;i <= max; i += 2) { k = sqrt(i); for(j = 2;j <= k;j++) { if(i % j ==0)break; } ...

C语言 求100—200之间的全部素数,并且输出每10个换一行
答:第一个问题的分析:如果满足i<=k,则说明这个数不是素数,则不用输出,不执行下面的printf的函数,只有满足i>=k+1(其实是满足1=k+1),才能判断此数为素数,则输出。所以程序是正确的。第二个问题的分析:两个程序的最终结果是一样的,都是正确的。程序自然结束后,会有i==k+1,此时是素数,...

将100-200之间的素数输出,用传统流程图和N-S图表示
答:这个不是很难,下面具体介绍一下:include <iostream> using namespace std;void main() { cout<<"100-200之间的所有素数为:"<<endl;int k=0;for (int i=100;i<=200;i++){int m=0;for (int a=1;a<=i;a++){if(i%a==0) m++;}if(m==2){ cout<<i<<" ";k+=i;}}...

判断101-200之间有多少个素数,并输出所有素数
答:10--200之间的素数(质数)有:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 2.程序分析:首先明白什么是素数,只能被1和本身整除的数,用循环遍历101-200之间的数,然后用101~200间的书整出2到该数前面一个数,...

7、求素数表中1~1000之间的所有素数
答:1~1000之间的所有素数:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 ...