#include<stdio.h> #include<string.h> #include<ctype.h> int intlen(int n); //求任意整数的位数 int fact(int n); //求任意一个正整数的阶乘 int hui(int n); //判断一个正整数是不是回文数 int isprime(int n); //判读一个任意整数是否为素数 int level(char ps[]); //求输入的密码等级 int intlen(int n){//求n的位数 int i = 1; while(n/10){ i++; n /= 10; } return i; } int fact(int n){//求n的阶乘 if(n == 1 || n == 0){ return 1; } return n * fact(n-1); } int hui(int n){//判断正整数是否为回文数 int i,j; int flag = 1; int intle = intlen(n); //该数的位数 int a[intle]; for(i = 0; flag == 1; i++){ a[i] = n % 10; if(n <= 10){ //n为个位结束单独存余,结束循环 a[i] = n % 10; flag = 0; }else{ n /= 10; } } j = 0; for(i = 0; i < intle/2; i++) if(a[i] == a[intle - (i+1)]) j++; // printf("%d", intle/2); // printf("%d", j); if(j == intle/2) return 1; return 0; } int isprime(int n){//判断n是否为素数 int is_prime = 1, i; if(n < 0) return -1; for(i = 2; i < n; i++){ if(n % i == 0){ is_prime = 0; break; } } return is_prime; } int level(char a[]){ int i, location; int ps_level = 0; int len = strlen(a); int di, up, lo, pu; di = up = lo = pu = 0;//用于判断是否为第一个字符 for(i = 0; i < len; i++){ if(isdigit(a[i]) && di == 0) { ps_level++; di++; } if(isupper(a[i]) && up == 0) { ps_level++; up++; } if(islower(a[i]) && lo == 0) { ps_level++; lo++; } if(ispunct(a[i]) && pu == 0) { ps_level++; pu++; } } if(len > 6) ps_level++; return ps_level; } #if 0 //1 int main(){ int m; puts("请输入一个整数。"); scanf("%d", &m); printf("该整数位数%d", intlen(m)); putchar('\n'); } //2 int main(){ int i, m, sum = 0; puts("请输入一个整数。"); scanf("%d", &m); for(i = m; i > 0; i = i-2){ sum += fact(i); printf("%d!", i); if(i > 1) putchar('+'); if(i == 1) putchar('='); } printf("%d\n", sum); } //3 int main(){ int m; int yes = 1; puts("输入一个整数。"); scanf("%d", &m); if(hui(m) == yes){ printf("%d是回文数", m); }else{ puts("请重新输入一个数"); } } //4 int main(){ int i, m; puts("输入一个大于二的整数。"); do{ scanf("%d", &m); if(m < 2) printf("\a输入一个大于二整数。"); }while(m < 2); printf("%d等于{", m); for(i = 2; i < m-1; i++){ //因为1不是素数 if(isprime(m - i) && isprime(i)){ printf("%d加%d ", m-i, i); } } putchar('}'); putchar('\n'); } #endif //5 int main(){ #define PASSWORD 20 int i, c; char ps[PASSWORD]; puts("输入想要设置的密码。"); scanf("%s", ps); printf("密码强度%d\n", level(ps)); if(level(ps) < 3){ puts("您密码强度较弱,请更改密码。"); }else if(level(ps) < 5){ puts("密码设置较强,还可以更改密码更强。"); }else{ puts("密码强度很强,继续保持。"); } }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/37634.html