谁能帮帮我啊,发个几个测试运行过程的图片
codeblocks吧
全部回复
仅看楼主
level 1
cvbjvfxfhfzvd 楼主
素日期的定义如下:比如1993年5月1日,变成一个8位整数19930501(注意这里有时需补),如果这个整数是素数,则定义该日期是素日期,据说生日是素日期的人,人气好!
如果两个人生日之间的“素日期”的个数仍然是素数,那么两个人缘分是绝佳的。
Input
一共6个数,3个一组表示一个日期比如1992 2 11992 2 27 表示两个日期
1992年2月1日,和1992年2月27日
Output
两个日期之间“素日期”的个数,不含两个日期本身
SampleInput
19922 1 1992 2 28
SampleOutput
2
SampleInput
19922 10 1992 4 28
SampleOutput
3
HINT
注意日期的合法性,
穷举两个日期之间的每一个日期,
并测试它是否为素日期

#include <stdio.h>#
include #include int isPrime(unsigned n) { unsigned i,flag = 1; if(n < 2) return 0; for(i = 2; i <= sqrt(n) && flag; ++i) flag = n % i; return flag;} int isLeap(unsigned year) { return ((!(year % 4) && year % 100) || year % 400);} int main() { unsigned y,m,d,cnt = 0; unsigned start,end; char str[10]; scanf("%u%u%u",&y,&m,&d); sprintf(str,"%u%02u%02u",y,m,d); start = atoi(str); scanf("%u%u%u",&y,&m,&d); sprintf(str,"%u%02u%02u",y,m,d); end = atoi(str); while(start < end) { y = start / 10000; m = start % 10000 / 100; d = start % 100; if(m == 2) { if(d == 28) { if(isLeap(y)) ++d; else { ++m; d = 1; } } else if(d == 29) { ++m; d = 1; } else ++d; } else if(m == 4 || m == 6 || m == 9 || m == 11) { if(d == 30) { ++m; d = 1; } else ++d; } else if(m == 12) { if(d == 31) { ++y; m = 1; d = 1; } else ++d; } else { if(d == 31) { ++m; d = 1; } else ++d; } sprintf(str,"%u%02u%02u",y,m,d); start = atoi(str); if(isPrime(start)) ++cnt; } printf("%u\n",cnt); return 0;}
这段源程序不知道对不对
谁能发几个运行结果的图像这样的
跪谢
2022年03月29日 09点03分 1
1