| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6157 人关注过本帖
标题:求~~~随机产生10个1-100之间不相同的整数,输出所有的素数。
只看楼主 加入收藏
吴军林
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2011-4-19
收藏
得分:0 
二楼的好像没有注意到是产生1-100之间的10个随机数,且不能相同,这是前提,如果你产生的不是这十个数,即使输出
符合条件的素数也是不符合条件的吧。。。
2011-04-28 22:05
dengjinbao
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:64
专家分:119
注 册:2011-3-22
收藏
得分:2 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main(){
  int i=0,j,temp,k=0;
  int a[10]={0};
  int flag=0;
  while(i<10){
      flag = 0;
     temp = rand()%100+1;
     for(j=0;j<=k;j++){
         if(temp == a[j]){
            flag = 1;
            break;
         }
     }
     if(!flag){
         a[k++] = temp;
         for(j=2;j<sqrt(temp);j++){
             if(temp % j ==0){
                break;
             }

         }

         if(j>=sqrt(temp)){
            printf("%d是素数\n",temp);
            i++;
         }else{
                printf("%d不是素数\n",temp);
            i++;
         }
     }

  }

  for(i = 0 ;i<10;i++){
    printf("%d ",a[i]);
  }
  printf("\n");


} 
2011-04-28 22:44
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:2 
实现8楼的算法。
程序代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
//--判断素数
int isPrime(int n)
{
    int i,k;
    k=sqrt(n);
    for(i=2;i<=k;i++)
        if(n%i==0)return 0;
    return 1;
}
//--建立100以内的素数数组
int PrimeArray(int a[])
{
    int i,n=1;
    a[0]=2;

    for(i=3;i<100;i+=2)
        if( isPrime(i) ) a[n++]=i;
    return n;
}
//--输出数组
void printa(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%4d",a[i]);    
    printf("\n");
}
void   main()
{
    int a[30]={0},b[10],i,k,n,n0,t;

    n0=n=PrimeArray(a);    

    srand(time(0));                        //随机初始化函数
    for(i=0;i<10;i++)
    {
        k=rand()%n;                        //随机函数
        b[i]=a[k];
        t=a[k];a[k]=a[n-1];a[n-1]=t;     //把选中的素数交换的最后
        n--;
    }

    printa(b,10);

}
2011-04-29 07:12
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{int j,i,a[10],b[20],s=0,m=0,c[10];
for(i=2;i<100;i++)
{for(j=2;j<i;j++)
if(i%j==0)
break;
if(j>=i)
b[s++]=j;}
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<s;j++)
{if(rand()%100==b[j])
{c[m]=b[j];m++;}}}
for(i=0;i<m;i++)
for(j=i+1;j<m;j++)
if(c[i]==c[j])
c[i]=0;
for(i=0;i<m;i++)
if(c[i]!=0)
printf("%d,",c[i]);
getch();
}
2011-04-29 07:38
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-04-30 01:22
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
呵呵,8楼居然为自己的算法感动到泪奔。(还是为自己的懒惰,泪如泉涌?)
2011-04-30 08:53
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-04-30 15:17
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
以下是引用cacker在2011-4-30 15:17:12的发言:



其实不是为我自己懒惰    我不认为直接给别人代码是好事

读代码和写代码是两个概念   给你一堆代码又如何???你确实可以借鉴   但你最多只能是借鉴了

不能自己去设计  去想  
你这样的想法,真是太高尚了,

我就是真命天子,顺我者生,逆我者死!
2011-05-01 12:26
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
以下是引用kwxx在2011-4-30 08:53:00的发言:

呵呵,8楼居然为自己的算法感动到泪奔。(还是为自己的懒惰,泪如泉涌?)
我觉得两者都不是,

我就是真命天子,顺我者生,逆我者死!
2011-05-01 12:28
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-05-01 14:03
快速回复:求~~~随机产生10个1-100之间不相同的整数,输出所有的素数。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065780 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved