Pages: 19/21 First page Previous page 14 15 16 17 18 19 20 21 Next page Final page [ View by Articles | List ]

输出素数(使用函数)

| October 19, 2007 14:55 | timmy | Via Original
输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=500),输出m 和n之间的所有素数,每行输出6个(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
要求定义并调用函数prime(m)判断m是否为素数。
输出语句:
printf("%d ", i);
printf("\n");
例:括号内是说明
输入:
1      (repeat=3)
1 35   (m=1, n=50)
输出:
2 3 5 7 11 13
17 19 23 29 31

#include "stdio.h"
#include "math.h"
int prime(int m);
int main( )
{
 int ri,repeat;
 int count, i, m, n, sum;
 
 scanf("%d", &repeat);
 for(ri = 1; ri <= repeat;ri++){
   scanf("%d%d", &m, &n);
  count=0;
  for(i=m;i<=n;i++){
    if(prime(i)){
      printf("%d ",i);
      count++;
      if(count%6==0)
        printf("\n");
    }
  }
   printf("\n");
 }
}
int prime(int m)
{
  int i,y;
  if(m!=1){
    for(i=2;i<=sqrt(m);i++)
      if(m%i==0) break;
      if(i>sqrt(m))
        y=1;  
      else
        y=0;
  }
  else
    y=0;
  return y;
}
Tags:

求各位数字的立方和等于它本身的数

| October 19, 2007 14:15 | timmy | Via Original
输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。
输出语句:printf("%d\n", i);
例:括号内是说明
输入:
2    (repeat=2)
100 400  (m=100, n=400)
1 100    (m=1, n=100)
输出:
153 (1*1*1+5*5*5+3*3*3=153)
370 (3*3*3+7*7*7=370)
371 (3*3*3+7*7*7+1*1*1=371)
1

#include "stdio.h"
#include "math.h"
int main( )
{
 int ri,repeat;
 int i, digit, m, n, number, sum;
 
 scanf("%d",&repeat);
 for(ri=1;ri<=repeat;ri++){
   scanf("%d%d", &m, &n);
  for(i=m;i<=n;i++){
    sum=0;
    number=i;
    while(number!=0){
      digit=number%10;
      sum=sum+pow(digit,3);
      number=number/10;
    }
    if(sum==i)
      printf("%d\n",i);
  }
 }
}
Tags:

统计素数并求和

| October 19, 2007 14:04 | timmy | Via Original
输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
例:括号内是说明
输入:
3      (repeat=3)
1 10   (m=1, n=10)
20 35  (m=20, n=35)
14 16  (m=14, n=16)
输出:
count=4, sum=17    (1到10之间有4个素数:2,3,5,7)
count=3, sum=83    (20到35之间有3个素数:23, 29, 31)
count=0, sum=0     (14到16之间没有素数)


#include "stdio.h"
#include "math.h"
int main( )
{
 int ri,repeat;
 int count, i, j, k, m, n, sum;
 
 scanf("%d", &repeat);
 for(ri = 1; ri <= repeat;ri++){
   scanf("%d%d", &m, &n);
  count=sum=0;
  for(i=m;i<=n;i++){
    k=sqrt(i);
    if(i!=1){
      for(j=2;j<=k;j++)
        if(i%j==0) break;
      if(j>k){
        count++;
        sum=sum+i;
      }
    }
  }
   printf("count=%d, sum=%d\n", count, sum);
 }
}

Tags:

换硬币

| October 19, 2007 13:48 | timmy | Via Original
输入一个正整数repeat (0将一笔零钱(大于8分,小于1元, 精确到分) 换成1分、2分和5分的硬币。输入金额,问有几种换法?要求每种硬币至少有一枚。
例:括号内是说明
输入:
2    (repeat=2)
10   (money=10分)
13   (money=13分)
输出:
2    (10分有2种换法)
4    (13分有4种换法)


#include "stdio.h"
int main( )
{
 int ri, repeat;
 int count, fen1, fen2, fen5, money;

 scanf("%d", &repeat);
 for(ri = 1; ri <= repeat; ri++){
   scanf("%d", &money);
  count=0;
  for(fen5=1;fen5<=19;fen5++)
    for(fen2=1;fen2<=48;fen2++)
      for(fen1=1;fen1<=money;fen1++)
        if(fen5*5+fen2*2+fen1==money)
          count++;
   printf("%d\n", count);
 }
}
Tags:

求整数的位数

| October 19, 2007 13:42 | timmy | Via Original
输入一个正整数repeat (0输入一个整数,输出它的位数。
例:括号内是说明
输入
4   (repeat=4)
123456  -100  -1   99
输出
count=6 (123456的位数是6)
count=3 (-100的位数是3)
count=1 (-1的位数是1)
count=2 (99的位数是2)


#include <stdio.h>
int main( )
{
  int ri, repeat;
  int count;
  long in;

  scanf("%d", &repeat);
  for(ri=1; ri<=repeat; ri++){
    scanf("%ld", &in);
  count=0;
  if(in<0)
    in=-in;
  do{
    in=in/10;
    count++;
  }while(in!=0);
    printf("count=%d\n", count);
  }
}
Tags:
Pages: 19/21 First page Previous page 14 15 16 17 18 19 20 21 Next page Final page [ View by Articles | List ]