Язык не указан, Default-Language это C. На нём и напишу. 1. #include <stdio.h> int main() { int n; scanf("%d", &n); if (n % 10 == 4 || n % 10 == 7 || n / 10 == 4 || n / 10 == 7) printf("YES\n"); else printf("NO\n"); return 0; } Для порядку скажу что на Perl это можно реализовать проще. #!perl %h { 4 => 0, 7 => 0}; <>; if (exists $h{$_%10} || exists $h{$_/10}) { print "YES\n"; else { print "NO\n"; } Но мы ушли от темы. Итак, 2. Тут всё ещё проще: #include <stdio.h> int main() { int n; scanf("%d", &n); if (!(n % 3)) printf("Multiple of 3\n"); else printf("Not multiple of 3\n"); if (n % 10 == 3) printf("Ends by 3\n"); else printf("Not ends by 3\n"); return 0; } Тут более простой реализации на другом известном мне языке нету, так что приводить дополнительно ничего не буду.
var a: string;
begin
write ('Введите слово: '); read (a);
writeln ('Именительный падеж: ',copy(a,1,length(a)));
writeln ('Родительный падеж: ',copy(a,1,length(a)-1),'ы');
writeln ('Дательный падеж: ',copy(a,1,length(a)-1),'е');
writeln ('Винительный падеж: ',copy(a,1,length(a)-1),'у');
writeln ('Творительный падеж: ',copy(a,1,length(a)-1),'ой');
writeln ('Предложный падеж: ',copy(a,1,length(a)-1),'е');
end.
Основной момент, это удаление окончания путем копирования слова в строке a начиная с первого символа, до длины слова минус 1 символ.
Объяснение: