当前位置: 代码迷 >> C语言 >> 素数程序问题
  详细解决方案

素数程序问题

热度:205   发布时间:2007-12-05 22:27:34.0
/* Note:Your choice is C IDE */
#include "stdio.h"
int prime(a)
int a;
{
    int flag=1,n;
    for(n=2;n<=a/2&&flag==1;n++)
    if(a%n==0)
    flag=0;
    return flag;
}

main()
{
    int a;
    scanf("%d",&a);
    if(prime(a))
    printf("yes");
    else
    printf("no");
}
----------------解决方案--------------------------------------------------------
/* Note:Your choice is C IDE */
#include "stdio.h"
int prime(a)
int a;
{
    int flag=1,n;
    for(n=2;n<=a/2&&flag==1;n++)
    if(a%n==0)
    flag=0;
    return flag;
}

main()
{
    int a;
    scanf("%d",&a);
    if(prime(a))
    printf("yes");
    else
    printf("no");
}
----------------解决方案--------------------------------------------------------
/* 2 也是素数 */
#include <stdio.h>
#include <conio.h>

[bold]int[/bold] main([bold]void[/bold])
{
    [bold]int[/bold] a, i;
    printf("input the number: ");
   
    [bold]while[/bold](scanf("%d",&a) != 1 || a < 0)
    {
        [bold]while[/bold](getchar() != '\n');
        printf("input the number(> 0): ");
    }


    [bold]for[/bold](i = 2; i < a; i++)
        [bold]if[/bold](a % i == 0)
            [bold]break[/bold];
    [bold]if[/bold](i == a)
        printf("%d是素数\n",i);


    puts("Bye!");
    getch();
    [bold]return[/bold] 0;
}

----------------解决方案--------------------------------------------------------
看看这个,我测试了一下,10000以内的好象可以.......
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
    int num,mark=0;

    printf("Please enter one number:\n");

    scanf("%d",&num);
    
    printf("All the prime number are:\n");
    for(;num>1;num--)
    {
        mark = 0;
        for(int i =2; i<=sqrt(num);i++)
            if(num%i == 0)
                mark = 1;
        if(mark == 0)
            printf("%5d",num);
    }
    printf("\n");

    return 0;
}
----------------解决方案--------------------------------------------------------
main()
{
  int a,i,k;
  printf("input the number\n");
  scanf("%d",&a);
  while(a>3)
  {
    k=sqrt(a);
    for(i=2;i<=k;i++)
    if(a%i==0) break;
    if(i==k+1) printf("%-3d",a);
    a--;
  }
}
----------------解决方案--------------------------------------------------------
楼上的兄弟们啊
你们为什么都要把2和3排除掉啊
2,3也是素数啊


#include<math.h>
main()
{int  i,j,a;
printf("Input the number is\n");
  scanf("%d",&a);
for (;a>=2;a--)  
    {for(i=2;i<=sqrt(a);i++)
       if (a%i==0 && a/i!=1) break;
      if (i>sqrt(a) )  
        printf("%d",a)
     }
}
----------------解决方案--------------------------------------------------------
  相关解决方案